묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
map을 이용해서 풀어 보았습니다
원본 배열 길이와 반환 배열 길이가 같기 때문에 map 함수를 이용하였고, if else 분기문을 가독성 좋게 switch case를 이용하였습니다.function solution(array, array2) { return array.map((v, index) => { if (v === array2[index]) return "D"; switch (v) { case 1: return array2[index] === 2 ? "B" : "A"; case 2: return array2[index] === 1 ? "A" : "B"; case 3: return array2[index] === 1 ? "B" : "A"; } }); } console.log(solution([2, 3, 3, 1, 3], [1, 1, 2, 2, 3]));
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 질문있습니다.
안녕하세요.제가 순열이 아닌 방법으로 풀었는데 이렇게 풀어도 괜찮을지 궁금해서 질문드립니다. 시간 효율은 개선되었다고 판단되지만 메모리가 많이 낭비되는 것 같고 코드가 긴 것 같습니다. http://boj.kr/a908b9d0967c46b9bfa2fb0f545f6073 감사합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게해도 괜찮은걸까요?
(사진)
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
filter를 이용해서 풀어보았습니다.
감사합니다. // 내코드 function solution(array) { let max = 0; return array.filter((v) => { if (v > max) { max = v; return true; } }).length; } console.log(solution([130, 135, 148, 140, 145, 150, 150, 153]));결과는 : [130,135,148,150,153] 5가 나옵니다
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
filter를 이용한 풀이
강의 보기전 제가 문제를 제대로 이해 했는지 모르겠으나,첫줄6과 7을 비교를 처음 시작, 그 이후 부터 자신의 바로 앞 수보다 큰 수만 출력 이렇게 이해해서 filter와 삼항연산자를 이용하여 풀어보았습니다.function solution(num, array) { return array.filter((v, index) => index === 0 ? v > num : array[index] > array[index - 1] ); } console.log(solution(6, [7, 3, 9, 5, 6, 12]));
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
dp 풀이는 어려운가요?
이전 돌다리 건너기 문제는 dp풀이였는데, 이 문제는 뒤로가는 경우가 있어서 dp풀이가 어려운가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
입출력 싱크
ios_base::sync_with_studio(false) cin.tie(NULL); cout.tie(NULL)은 매번 사용해야 하나요?어떨때는 쓰고 어떨때는 안써서 헷갈립니다.. 출력해보고 타임아웃 날때만 한번 써보면 될까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
채점기가 in,out만 매칭하는 실행파일인가요?
안녕하세요 선생님채점기가 혹시 in-out이 맞는지 확인하는 실행파일인가요 아니면 효율성이나 알고리즘도 따지는 채점기일까요??제가 맥북사용자인데, in-out만 맞는지 확인하는 실행파일이면 따로 코드를 짜서 사용할까해서요 ㅠㅠ 윈도우에서 실행시켜봤는데 ㅠㅠ 이유를 모르는 에러가 발생합니다..
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B 질문있습니다.
안녕하세요 큰돌님!! main 부분 마지막 출력 부분에서 mx에 -1을 하는 이유는 처음 mx에 0을 담아놓기 때문에 그 값을 빼기 위함인가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3 - G 12851 메모리초과
안녕하세요.저는 재귀로 했다가 시간초과 나서 BFS로 시도를 해보았는데 여러 예제를 넣으면 IDE상에서는 잘 됩니다. 그런데 백준에 넣으면 자꾸 메모리 초과라고 하면서 되지가 않네요. 변수도 별로 없고 그렇게 복잡한 코드도 아닌데 왜 안될까요.해설강의 봤는데 오히려 제 코드가 시간도 짧고 메모리는 훨씬 적게 먹을것 같은데...http://boj.kr/1fdf197d568c42be83e76b55ca24889b -- 해결했습니다.http://boj.kr/1455d3ec4d174bbd939b9ce22f57a763 visitied로 나중에 재방문하는 지점들을 처리하지 않게 만드니까 되네요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-k 질문입니다.
https://www.acmicpc.net/source/68946605강사님께서 적어주신 코드를 컴파일러에 실행해봤더니 아래와 같은 오류가 나옵니다.a.cpp:10:21: warning: array subscript is of type 'char' [-Wchar-subscripts] for(char a : s) cnt[a]++; ^~코드는 강사님과 동일합니다. 백준에선 통과했지만 컴파일러에서는 오류가 나오네요. https://www.acmicpc.net/source/68946669이건 제 컴파일러에서 오류가 안나오게 만든 코드인데요.char 타입이 음수 값을 가질 수 있어서, 그런가 싶어서 일단 'char'를 'unsigned char'로 변환하였습니다.근데 오류의 정확한 원인을 모르겠고,또 남들은 문제가 없어보이는데, 제 컴파일러에서만 오류가 나는 이유를 모르겠어서 여쭤봅니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-B 재귀함수 질문 있습니다
안녕하세요 선생님. 선생님께서 제공해주신 정답 코드를 보면 go 재귀 함수를 사용하는데 go의 재귀 부분을 이해하지 못하고 있습니다. void go(int here){ if(here == n + 1){ int sum = 0; for(int i = 1; i <= (1 << (n - 1)); i *= 2){ int cnt = 0; for(int j = 1; j <= n; j++) if(a[j] & i)cnt++; sum += min(cnt, n - cnt); } ret = min(ret, sum); return; } {(A) 위치} go(here + 1); a[here] = ~a[here]; go(here + 1);}위 함수에서 go(1)에서 시작하고 나면 go(2) => go(3) => go(4) 까지 가고 나서 재귀가 한번 끝나고 난 뒤 다음의 동작이 이해가 가지 않습니다. 동작을 확인해보려고 기저 사례 코드와 go(here+1) 코드 사이({A 위치}라고 하겠습니다!)에 a[i]의 요소를 확인해보는 코드를 삽입하여 확인하였습니다.(우선 저 위치에서 a[i]를 확인하는 지도 확실하지 않습니다.) 그런데 3x3 짜리 예시입력에 대해서 행의 뒤집기에 따른 행렬 a[i]의 경우의 수가 8개가 나와야 한다고 생각되는데 A위치에서는 8가지 나오지도 않았습니다. 혹시 마지막 3줄에 따른 재귀함수가 어떻게 돌아가는 지 알 수 있을까요? 4-B 문제와는 별개로 3주차 완전탐색 부터 재귀함수에 따른 문제 풀이 방식이 대부분인데 제가 재귀 함수에 대한 이해가 조금 부족한 것 같아서 어려움을 겪고 있습니다. 재귀 함수 부분을 만들 때(예를 들어 void go(int y, int x){~~} 라면) 언제 다시 (예를 들어 go(ny,nx)) 처럼 적어주어 재귀를 들어가야 하는 지에 대한 어려움이 있습니다. 혹시 이럴 때는 어떠한 방식으로 공부하면 좋을까요?
-
해결됨코딩테스트 [ ALL IN ONE ]
강의자료 부탁드립니다.
노션 이메일 : sooin03@naver.com좋은 강의 잘 듣겠습니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
완탐 1090
안녕하세요 자바로 강의 듣고 있는 학생입니다.강의를 들었을 때 이해한 바로는 x,y 따로 계산해서 더해 최솟값을 구한다.받은 좌표의 겹치는 부분 그러니까 예제로 보았을 때 x: 14~16 y:14~16의 로 모이는 모든 경우를 찾는다k번째에 k명이 모이는 최소 이동 횟수를 구하면 되니까 확인한 좌표에서 가까운 k개를 구하면 된다이렇게 이해하고 구현하면 될까요?그리고 하루정도 고민한다 해도 해결되지 않는다면 다른사람의 답, 풀이를 확인해봐도 될까요? 아니면 계속해서 시도하는게 좋을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8-H 문제 질문
안녕하세요 선생님 좋은 강의 매번 감사합니다. 강의를 보며 풀이를 보다 의문점이 생겨 질문드립니다. 답안코드의for(int i = 3; i <= max_n; i++){ f[i] = f[i - 1] + f[i - 2] + 1; } 이 부분에서 i의 조건이 i <= max_n 인 이유를 잘 모르겠습니다.앞에서 f 를 선언할때 int f[max_n] 으로 선언하였는데 위의 조건이 되면 for문 안에서 f[max_n] 까지 값을 할당해주는것인데 이러면 index범위를 벗어나서 할당하는것 아닌가요? 만약 max_n이 40이라면 마지막 인덱스는 f[40]이 아닌 f[39]으로 알고있어서 혹시 그게 맞지 않나싶어 질문드립니다! 왜 오류가 안나는지 궁금합니다. 아니면 제가 놓치고 있는 부분이 있을까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
continual_remove 함수에서 global blank, ch 선언 질문
안녕하세요.continual_remove 함수에서 global blank, ch 선언 하는 이유가 DFS에서 global blank, ch 참조할때 어디에서 선언한 변수를 참조할지 헷갈려서 그런건가요?continual_remove 함수에서 global 선언을 하지 않으니 정상동작하지 않는걸로 봐서는 DFS에서 참조하는 global blank, ch는 main에서 선언한 부분을 참조하는것 같은데, 혹시 제가 이해한게 맞는지 확인 부탁드립니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
g_pHeadNode
g_pHeadNode는 왜 주솟값을null로 갖고있나요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드리뷰 부탁드립니다 .선생님..^^
function solution(arr) { let result = Number.MIN_SAFE_INTEGER; let row = 0; let column = new Array(arr.length).fill(0); let diagonal = new Array(2).fill(0); let miniDia1 = 0; /** 대각의 합 */ let miniDia2 = 0; for (let i = 0; i < arr.length; i++) { let miniRow = 0; /** 행의 합 */ let miniCol = 0; /** 열의 합 */ for (let r = 0; r < arr.length; r++) { miniRow += arr[i][r]; miniCol += arr[r][i]; if (miniRow > row) row = miniRow; }; miniDia1 += arr[i][i]; miniDia2 += arr[i][arr.length - 1 - i]; column[i] = miniCol; }; diagonal[0] = miniDia1; diagonal[1] = miniDia2; const maxCol = Math.max(...column); const maxDia = Math.max(...diagonal); result = Math.max(maxCol, maxDia, row); return result; };
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간복잡도 질문
3중 for문으로 카드를 뽑으면 간단하다는 건 알고있었지만, 이러면 시간복잡도가 O(n^3) 이 되면서 시간초과가 나면서 안될 것 같다고 생각했습니다... 보통 n이 몇까지 가면 시간초과가 발생하나요? 이걸 제대로 몰라서 이중for문도 조심스럽습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
멘토링 코드 중 이해가지 않는 부분이 있습니다.
이 코드에서if(arr[k][s] == i) pi = s; if(arr[k][s] == j) pj = s;이 부분이 이해가질 않습니다. 왜 i와 j 가 같아야지 pi, pj에 넣을 수 있는 건가요??