묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
출력 오류 질문있습니다
안녕하십니까 큰돌님http://boj.kr/d880f5abf6944bb2a159e97f98fec6e0강사님 이렇게 코드 작성했는데 테스트 케이스를 입력하면 왜 자꾸 출력이 깨지는지 모르겠습니다 ㅜㅠ
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
실행시간
if name == "__main__":start = time.time() n, m = map(int, input().split()) tmp = [0]*(n + m + 1) max = -2147000000 for i in range(1, n + 1):for j in range(1, m + 1):tmp[i + j] += 1 if tmp[i + j] > max:max = tmp[i + j] for idx, x in enumerate(tmp):if x == max:print(idx, end=' ') end = time.time() print() print(end - start, "sec")이렇게 해서 성공했는데 답보다 실행시간이 늦더라고여enumerate가 느린건가요?2중 for문에 if 가 들어가서 느린건가요?for문이 여러개인건 시간하고 크게 관계가 없는건가요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
자바스크립트 입문 다음 단계
안녕하세요 선생님. 자바스크립트 입문 단계 강의 너무너무 잘들었습니다.혹시 그다음 수준의 강의 출시 계획은 없을까요.?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-F 문제 수업 질문
http://boj.kr/3ab33c32342c4bb69dab00eeab01852a작성해 본 코드입니다.혹시이분탐색 부분인 while(lo<=hi){ mid = (hi+lo)/2; if(check(mid)){ hi = mid - 1; h_max = mid; } ~~ 에서 h_max = mid 부분을h_max = min(mid, h_max);로 바꾸게 되면 min을 사용해서 최솟값을 잡을 수 있을 줄 알았지만 "틀렸습니다"가 되어 질문드립니다.( 예제는 전부 맞다고 나옵니다) 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
make_pair 질문입니다!
안녕하세요!8주차 개념강의에도 그렇고 선생님 정답코드에서도 그렇고 push({a, b})대신 push(make_pair(a, b))가 등장하는데요. 혹시 이렇게 하시는 특별한 이유가 있는건가요? 그냥 { }로 해도 정답은 통과되는데 혹시나의 예외상황이 있나 궁금해서 여쭤봅니다.감사합니다!
-
해결됨파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Section2-7질문
안녕하세요 강사님!소수(에라토스테네 체) 문제에서 제가아래와 같이 코드를 짰는데런타임 오류가 나는데 이렇게 하면 오류가 나는 이유를 알 수 있을까요..?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
올라왔던 질문이지만 시간초과 질문합니다.
http://boj.kr/b073d7edeccf425cbd7f700cd557fa91 next_permutation을 이용하여 문자열의 요소들을 섞어가면서 각각의 경우에 reverse한 문자열과 일치하는 경우가 있는지 탐색하는 방법을 생각했습니다.그런데 시간 초과가 발생하여 질문드립니다ㅠreverse 함수의 시간복잡도는 O(n) 아닌가요..??어느 지점에서 시간이 문제가 된 것인지 궁금합니다.ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-D 다른 방법으로 풀어봤는데 평가 부탁드립니다
안녕하십니까 큰돌님1-D 강의 보기 전에 다른 방법으로 혼자 풀어봤는데 효율적인지 궁금합니다http://boj.kr/37b43fc6a65a47feaaed0c00515f4eed그리고 처음에 pop 사용해서 코드 작성했었는데 오류가 나던데 스택, 큐, 디큐의 pop 함수는 반환값은 없는 건지 궁금합니다 !
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코드 질문있습니다 !
안녕하십니까 큰돌님동영상 보기 전에 코드를 작성해봤었는데거의 유사하긴 한데 살짝 달라서 코드가 괜찮은 건지 질문 드립니다 !http://boj.kr/aa835786633d47efb583c7c533491bae
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/726cac08b23b48e39d08b58e6bf528c5이와 같이 bool로 작성 해봤는데 틀려서요 한번 확인 부탁드리겠습니다 감사합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하십니까 선생님 질문이 있습니다!!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. dev c++에 있는 디버깅은 사용 할 수 없는건가요?? 디버깅하기 하면 바로 dev c++프로그램이 종료돼버려서 여쭤봅니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-k 시간초과 질문 있습니다.
http://boj.kr/abd4a896e8f8492ebcc55792822142f0먼저 입력을 받으며 ice라는 큐에 얼음의 위치를 전부 담고 bfs_swan으로 백조가 서로 만날 수 있는 지 확인합니다.그 후에 melt_ice라는 함수로 ice에 들어있는 큐를 이용해서 얼음을 녹이며 녹지 않은 얼음을 ice에 담고 check_swan 함수를 이용해서 한쪽 백조의 위치 주변에 녹은 얼음을 시작점으로 하여 다른쪽의 백조에 닿을 수 있는 지 bfs로 탐색합니다.(이 때 백조의 visited배열은 초기화를 해주지 않습니다.) 이렇게 melt_ice, check_swan 을 계속 반복해주며 로직을 반복하는데 어느 부분에서 시간초과가 나는 지 잘 모르겠습니다. 감사합니다!!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 개인 코드 에러 질문
http://boj.kr/91b33f2afbf548df86815aa98fb8dcc7 제가 작성한 코드입니다. (강의에서 선생님께서 말씀해주신 반례를 위한 코드는 포함되어있지 않습니다.) VSCode에서 입력하는 도중에 다음과 같은 에러 문구가 뜨면서 강제종료되었습니다.terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr: __pos (which is 4294967295) > this -> size() (which is 3) 어떤 부분이 잘못되었는지 모르겠습니다ㅠ 코드가 불친절한 점 죄송합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 코드 질문 있습니다
큰돌님의 코드를 보면 앞선 코드들과는 다르게 visited와 v벡터 안의 값을 넣는 코드와 sum을 정하는 코드가 dfs 부르기 전에 있는 것을 볼 수 있었습니다. dfs 코드 내부에서도 if(abs(a[ny][nx]- a[y][x]) >= l && abs(a[ny][nx] - a[y][x]) <= r) 이 안에 visited, v.push_back, sum을 넣어 놓으셨는데 왜 dfs 부르고 바로 적지 않고 이런 식으로 해야되는건가요? 밑에 바꿔서 넣어봤는데 틀리더라고요 이유 설명 부탁드립니다.http://boj.kr/00af894bac9844f7b1e5e3f2436f82fd
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
최대매출 한번 봐주세요
package TwoPointers_SlidingWindow; import java.util.Scanner; public class _03_03_최대매출 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(), m = sc.nextInt(); int[] costs = new int[n]; for (int i = 0; i < n; i++) { costs[i] = sc.nextInt(); } int maxC = 0; int sum = 0; for (int i = 0; i < n; i++) { if (i < m) { sum += costs[i]; continue; } else { sum -= costs[i-m]; sum += costs[i]; } maxC = Math.max(maxC, sum); } System.out.println(maxC); } }안녕하세요 강의를 듣기 전에 미리 풀었는데요for문이 처음 시작될 때 윈도우의 길이만큼 채우고 시작하려고 if문을 써서 윈도우 값을 채워넣었습니다.윈도우 값이 덜 채워졌을 때는 continue를 써서 최대 비교를 하지 않으려고 했는데요윈도우의 길이를 충족할 때만 최대 비교가 되게하려고 짠 로직인데 오답이 납니다.그런데 continue를 빼면 정답이 되고요.어떤 부분에서 오류가 뜨는 건지 궁급합니다.
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
dic으로 풀었는데
def dic_solution(nums): answer = -1 sH = dict() for i in nums: if(i in sH): sH[i]+=1 else: sH[i]=1 for i in sH: if(sH[i]==1): if(i>answer): answer=i return answer 이렇게 dic으로 풀었는데 수업에서는 다른 방법으로 풀었더라고요 수업 끝에서 대충 듣긴 했는데그냥 단순히 작아서 direct address table로 만든건가요?아니면 추가적인 이유가 있나요?궁금합니다.
-
미해결자바 코딩테스트 - it 대기업 유제
이 문제 기본 코드가 답 코드입니닷
기본 코드 파일에서 파일 열었는데 답 코드인 것 같아용
-
미해결자바 코딩테스트 - it 대기업 유제
if-else를 활용한 코드
import java.util.*; import java.io.*; public class P03_잃어버린강아지 { static int[] dx = {-1, 0, 1, 0}; static int[] dy = {0, 1, 0, -1}; public static int solution(int[][] board){ int px = 0; int py = 0; int ax = 0; int ay = 0; int pd = 0; int ad = 0; for (int i=0; i<board.length; i++) { for (int j=0; j<board.length; j++) { if (board[i][j]==2) { px = i; py = j; } else if (board[i][j]==3) { ax = i; ay = j; } } } int answer = 0; for (int i=0; i<10000; i++) { int npx = px + dx[pd%4]; int npy = py + dy[pd%4]; if (!(0<=npx && npx<10 && 0<=npy && npy<10) || board[npx][npy]==1) { pd++; } else { px = npx; py = npy; } int nax = ax + dx[ad%4]; int nay = ay + dy[ad%4]; if (!(0<=nax && nax<10 && 0<=nay && nay<10) || board[nax][nay]==1) { ad++; } else { ax = nax; ay = nay; } if (px==ax && py==ay) { answer = i+1; break; } } return answer; } public static void main(String[] args){ int[][] arr1 = {{0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 2, 0, 0}, {1, 0, 0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 3, 0, 0, 0, 1}, {0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 1, 0, 1, 0, 0, 0, 0, 0, 0}}; System.out.println(solution(arr1)); int[][] arr2 = {{1, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 1, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 1, 0, 1, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 0, 0, 0, 0, 0, 2, 1}, {0, 0, 0, 1, 0, 1, 0, 0, 0, 1}, {0, 1, 0, 1, 0, 0, 0, 0, 0, 3}}; System.out.println(solution(arr2)); } } 어차피 1분동안은 이동 혹은 회전 둘 중 하나만 가능한 것 같아 if-else로 풀고따로 boolean flag는 두지 않았는데 이렇게 풀어도 문제 없는거 맞나요 ?혹시 flag 변수를 두었을 때 얻는 이점이 따로 있는지 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8 - L 질문입니다.
안녕하세요 선생님! 8주차와서 많은 질문으로 찾아뵙는 것 같습니다... 항상 감사합니다.http://boj.kr/f01a3b3704f147638cb5d548fbe26459바로 이전 문제였던 8 - K의 풀이처럼 펜윅트리를 행별로 형성하게 해서 코드를 짜보았습니다. 테스트케이스는 잘 통과하는데 틀렸습니다...ㅠ 혹시 제 코드에서 어떤 점이 문제였을지 알 수 있을까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁 드립니다.
<script> function solution(arr) { let answer = 0; let cross = 0; for (let i = 0; i < arr.length; i++) { cross += arr[i][i]; let hang = 0; let yuel = 0; for (let j = 0; j < arr.length; j++) { hang += arr[i][j]; yuel += arr[j][i]; } if (answer < hang) { answer = hang; } if (answer < yuel) { answer = yuel; } // console.log(answer, tu); } return answer < cross ? cross : answer; } let arr = [ [10, 13, 10, 12, 15], [12, 39, 30, 23, 11], [11, 25, 50, 53, 15], [19, 27, 29, 37, 27], [19, 13, 30, 13, 19], ]; console.log(solution(arr));