묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
2019-라인 나잡아봐라 문제
이 문제를 풀다가 의문이 들었는데요 visitied를 사용할 필요가 있었는지 의문이 듭니다. public static int catch_me(int cony_loc, int brown_loc){ int time = 0; Queue<int[]> q = new LinkedList<>(); //map<위치, 시간> q.add(new int[]{brown_loc,0}); Map<Integer, Boolean>[] visitied = new HashMap[200010]; for (int i = 0; i < visitied.length; i++) { visitied[i] = new HashMap<>(); } while(cony_loc <= 200000){ cony_loc += time; if(visitied[cony_loc].containsKey(time)){ return time; } for(int i=0, initialSize = q.size(); i< initialSize; i++){ int[] info = q.poll(); int currentPosition = info[0]; int currentTime = info[1]; int newTime = currentTime + 1; int newPosition ; newPosition = currentPosition - 1; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } newPosition = currentPosition + 1; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } newPosition = currentPosition * 2; if(0<= newPosition && newPosition <= 200000) { visitied[newPosition].put(newTime, true); q.offer(new int[]{newPosition, newTime}); } } time++; } return -1; }딩코딩코님의 파이썬 풀이를 자바로 변환해봤을 때 이런식으로 코드가 작성이 되었는데 보통 dfs나 bfs에서 visitied는 재방문을 방지하려고 사용하는 것 같은데 이 코드상에는 재방문을 막으려는 부분이 없어보여서요 bfs 내에서 다음 초에 해당하는 위치를 q에 모두 넣게되는데 그럼 비교를 할 때 코니의 다음 시간과 브라운의 다음 시간은 반복문을 돌면서 어차피 조건문에서 체크를 하게되는데 visitied에 저장할 필요가 있나라는 생각이 들더라구요. 그래서 public static int catchMe(int cony, int brown) { int time = 0; //브라운의 next 위치를 저장할 queue 사용 Queue<int[]> q = new LinkedList<>(); q.offer(new int[]{brown, time}); while(cony <= 200_000){ cony += time; //bfs //q.size가 반복문내에서 동적으로 변경이 되므로 고정값을 구해놔야함. for(int i = 0, size = q.size() ; i < size; i++){ //q에 넣은 값을 poll int[] posTime = q.poll(); int currPos = posTime[0]; int currTime = posTime[1]; //같은 시간의 코니와 브라운의 위치를 비교하니까 visited를 사용할 필요없어보이데..? if(cony == currPos){ return time; } //다음 초에 브라운의 위치 int nextPos[] = {currPos - 1, currPos + 1, currPos * 2}; for(int pos : nextPos){ q.offer(new int[]{pos, currTime + 1}); } } time++; } return -1; }해당 코드로 다시 작성을 해보았는데 잘되는거는 같은데 혹시 제가 잘못생각하거나 놓치고 있는 부분이 있는지 확인받고싶습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
배추심기 코드리뷰 부탁드립니다!
http://boj.kr/bffd835841094bbeb0210b1729389ca4 저는 bfs 로 풀었는데 코드가 뭔가 난잡한 것 같습니다..코드리뷰 부탁드립니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R, 맞왜틀
https://www.acmicpc.net/source/87853963
-
미해결코딩테스트 [ ALL IN ONE ]
강의 처음부터 보고있는데 질문있습니다.
안녕하세요 강의 잘 보고 있습니다. 코드 짜고 파이썬 실행하시던데 한줄씩 실행은 어떻게 하는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
풀이를 안보고 다시 풀어봤는데 어느 부분에서 문제가 있는지 잘 모르겠습니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.풀이를 보지 않고 다시 풀어봤는데0이 많이 찍히는 결과가 나오네요.어느 부분이 문제일까요?http://boj.kr/2f5676322ed5440190d5c89ab3b727a9
-
미해결JavaScript 알고리즘 베스트 10
6번 샌드위치 문제
문제를 풀고 풀이를 보는데, 솔루션은 통과하는데, 하나 질문드릴게있습니다. https://paullabworkspace.notion.site/6-7775ee07951a463f8175a5ca924944bd 여기에 있는 테스트 케이스를 돌릴 때 강사님의 풀이로 돌렸을 때, [1,1,1,2,3,4,2,3,4,1] 이 배열이 0으로 나오는데, 테스트 result 배열에는 2가 결과값으로 나와있습니다. 혹시 뭐가 결과인지 알 수 있을까요??제가 반복으로 하나씩 그려봤을 때 0이 나오긴하는데.. 0이 맞는건지 2가 맞는거지.. 알려주시면 감사하겠습니다!!{ 'que_number': 6, 'testcase': [ [1,2,3,4,1,1,2,3,4], [1,1,1,2,3,4,2,3,4,1], [1,2,3,4,2,3,4,1] ], 'result': [ 1, 2, 0 ] }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-C 질문있습니다.!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님 이런식으로 풀어봤는데 테스트케이스는 맞았다고 나오는데 어떤 부분 때문에 틀렸는지 모르겠네요 ㅜㅜhttp://boj.kr/3ba0104138744d4094e65dcb3ae56e5f
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
3020번 풀이 코드관련 질문있어요
어느 파트 이분 탐색 알고리즘[문제풀이] :BOJ 3020자신은 어떻게 이해했는지이분탐색을 통해 top 과 bottom을 따로 나눠서 탐색하는 것 까지는 이해했습니다.어떤 부분이 궁금한지 get_idx(bots, h - 1) + 1 과 get_idx(tops, h) + 1 이 부분에서 구하려고 하는 높이의 직전 index를 구하는 것 까지는 이해하였으나, 왜 1을 더하는 지는 이해가 잘 되질 않습니다.해당 부분에 대해서 좀더 자세한 설명 부탁드리겠습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요 Slice Windoe 방식 질문입니다.
import java.util.*; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); String s = in.nextLine(); String s2 = in.nextLine(); System.out.println(Solution.solution(s, s2)); } } class Solution{ public static int solution(String s , String s2){ int ans = 0; HashMap<Character, Integer> map = new HashMap<>(); HashMap<Character, Integer> map2 = new HashMap<>(); for(char c : s2.toCharArray()){ map2.put(c, map2.getOrDefault(c, 0) + 1); } for(int i = 0; i<s2.length(); i++){ map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0) + 1); } if(map.equals(map2)){ ans++; } for(int i = s2.length(); i < s.length(); i++){ map.put(s.charAt(i), map.getOrDefault(s.charAt(i), 0)+1); if(map.get(s.charAt(i- s2.length())) == 1){ map.remove(s.charAt(i- s2.length())); }else{ map.put(s.charAt(i-s2.length()), map.get(s.charAt(i-s2.length())) - 1); } if(map.equals(map2)){ ans++; } } return ans; } }전 강의에서는 항상 기존 b의 길이만큼 먼저 계산을 해주고 비교를 한후에 하나를 추가해주고 기존꺼를 제거하는 방식으로 저는 이해해를 해서 그런식으로 풀고 있었는데강사님 코드 결론은 마지막에 b길이를 채워 주고나서 비교하고 나서 이전껄 빼고 새로운걸 추가시키고 비교하는 방식으로 하시는거 같은데 방식이 달라 어떤걸 더 봐야할지 모르겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 질문있습니다.
http://boj.kr/4162dcc1379245079c7059e608127f9d 제출했는데 출력 초과가 나오는 이유를 모르겠습니다..
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
1-10강 문제풀이중...
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?섹션1에 10강을 수강하고있습니다1-10. 알고리즘 더 풀어보기 (2) 2. 어려움을 겪는 부분강사님께서 제공해주신 문제를 먼저 풀어보았는데아래처럼 내장함수를 이용해서 풀어도 되나? 궁금합니다. 최대한 저런 함수 사용하지 않고 강사님께서 제공해주시는 풀이법으로 알고리즘을 공부하는게 맞는거같은데.. 저처럼 풀면 안되는건가 싶어서요...ㅠㅠ 알고리즘적인 생각이 아닌가도 싶고 ㅠㅠ 고민입니다!일단 char로 순서대로 돌꺼고 어차피 갯수가 1이면 바로 char 을 return해 주면 되지 않을까? 해서 아래처럼 해보았습니다...def find_not_repeating_first_character(string): # 이 부분을 채워보세요! for char in string: if string.count(char) == 1: return char return "_" 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1717번 최적화
union find 최적화 과정 중 union 최적화에서rank[a]와 rank[b]가 같을때는 아래로 가는 트리? 높이의 rank를 1 증가해줬는데 왜 다를때는 rank를 증가 안해주나요?증가해주는게 맞지않나? 싶어서 여쭤봅니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-P, 제가 작성한 코드가 괜찮은지 봐주세요.
https://www.acmicpc.net/source/87733901 강의를 보기전 구현해본 코드입니다.백준 통과는 됐는데, 제가 느끼기에 강사님 코드에 비해 길이가 길고 난잡하다 해야할까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
큰수출력하기
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요이코드는 왜 틀리나요??outofindex 문제도 발생하지 않는데 어느 부분이 틀린 건가요?감사합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 질문있습니다!
중첩 반복문으로 2개의 원소를 뽑는다고 했을 때 결국 이 알고리즘의 시간 복잡도는 n^2 이니까 최악의 경우 150,000 * 150,000 나오잖아요? 대략 2억개 넘는데 시간 초과가 안뜨는 이유가 궁금합니다 단순히 C++ 연산 속도가 빨라서 그런건지.. C# 이나 Java, Python 같은 언어로 하면 안 풀리는지.. 궁금합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
강의제목과 백준문제 제목 매칭표가 있을까요?
안녕하세요. 강사님~ 강의제목에 1-A 등으로 표시가 돼있어서 문제의 제목을 탐색하기가 어렵습니다.혹시 정리된 표가 있으시다면 공유부탁드려도 될까요?감사합니다.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
3번이 안풀립니다
import sysimport copy#sys.stdin=open("input.txt","rt")'''#3번이 틀림n =int(input())li1 = [list(map(int, input().split())) for _ in range(n)]cpy =copy.deepcopy(li1) #깊은 카피를 사용m=int(input())tot=s=0e = n#print(cpy)#li1 회전for i in range(m): li2 = list(map(int, input().split())) print(li2) if li2[1] == 0: #왼쪽으로 회전 for j in range(n): if j-li2[2] < 0: li1[li2[0]-1][j-li2[2]+n] = cpy[li2[0]-1][j] else: li1[li2[0]-1][j-li2[2]] = cpy[li2[0]-1][j] if li2[1] == 1: #오른쪽으로 회전 for j in range(n): if j+li2[2] < n: li1[li2[0]-1][j+li2[2]] = cpy[li2[0]-1][j] else: li1[li2[0]-1][(j+li2[2])%n] = cpy[li2[0]-1][j]#print(li1) for i in range(n): for j in range(s,e): tot += li1[i][j] if i < n//2: s+=1 e-=1 else: s-=1 e+=1print(tot) 다음과 같이 풀때, 1245번은 정답이 뜨는데 3번만 틀린ㄴ값으로 뜹니다..뭐가 틀린지 모르겠습니다..알려주세요..
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
5번 틀림
5번만 틀렸는데, 어느부분에서 틀렸는지 모르겠습니다.. 알려주세요 .. 아래는 제가 짠 코드입니다n = int(input())max = -1tot,tto = 0,0li = [[0]*n for _ in range(n)] # n의 크기를 가지고 0으로초기화된 리스트를 n번 반복for i in range(n): li[i]= list(map(int, input().split()))for i in range(n): if sum(li[i]) > max: max = sum(li[i]) for j in range(n): for i in range(n): tot += li[i][j] tot = 0 if tot > max: max = tot for i in range(n): tot += li[i][i] tto += li[i][n-i-1] if tot > max: max = tot if tto > max: max = ttoprint(max)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 맞왜틀 질문있습니다.
어떻게 테스트 케이스는 다 통과하는데 1%에서 틀리는데 이유를 모르겠습니다. 제가 어디서 잘못했을까요?한 이틀정도 박았는데 도저히 모르겠습니다...http://boj.kr/360ff010bbfb4bde8218e80bc42b796f감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-H 맞왜틀
https://www.acmicpc.net/source/87670511 어느 부분이 잘못된 건지 찾지를 못하겠어요..