묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코테의 바이블 [python]
PCCP 대비
이 책 내용을 다 습득하면 PCCP level5를 달성할 수 있을까요? 아니면 강의를 추가로 들어야 하나요?
-
미해결코딩 테스트 합격자 되기 - 4주완성(2기)
오픈채팅방 문의드립니다.
안녕하세요.코테합 오픈채팅방:https://open.kakao.com/o/gX0WnTCf위 오픈채팅방에 들어갔는데, 내보내기가 되었습니다.확인 부탁드립니다.
-
미해결38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
강의 자료 오류 수정
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 3주차 스택어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요? 강의 자료에 코드 오류가 있습니다9)스택문제 - 탑 +더 개선하는 부분은 없나요?부분에 대한 정답 코드가 오류가 있습니다.while stack and stack[-1][1] <= heights[i]:해당 부분의 <= 가 <로 변경되어야합니다. 코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결2026 코딩테스트 올인원 [JAVA]
정답과 동일하게 작성 후 실행 또는 제출했음에도 시간초과
강의에서 설명해주신 풀이 그대로 실행하기 / 제출하기 했으나, 항상 시간초과가 발생합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
2-10 더하거나 빼거나 관련 질문입니다
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?2-10어떤 알고리즘을 학습하고 계신가요?재귀여기까지 이해하신 내용은 무엇인가요?강의 내용과 코드는 전부 이해했습니다. 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?아이디어 발상 과정코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 처음에 문제를 풀려고 시도했을 때, 아이디어를 이것저것 떠올렸고 2주차때 배운 내용에 재귀가 있으니 뭔가 재귀로 풀면 가능하지 않을까? 라는 것까지 도달했습니다.그러나 30분 이상 고민하다가 결국 도저히 모르겠어서 코드를 아예 짜지 못한 상태로 정답풀이 강의를 봤습니다..강의는 자세히 알려주셔서 다 이해를 했지만 이러한 문제를 마주쳤을 때 풀이법을 떠올리는 게 너무 어려운데 어떻게 하는게 좋을까요?
-
미해결2026 코딩테스트 올인원 [JAVA]
part6. 구름의 개수 풀이 시간초과 이유
part6 구름의개수1 문제 풀다 질문 드립니다. 아래는 제가 bfs로 푼 코드인데요. 케이스는 통과하는데 시간초과가 납니다.bfs() 매개변수로 int[] start 를 받아서 아래에서 사용했는데, 하위 for문에서 int[] sub 로 배열을 만들어 쓴게 문제인가 싶은데, 이런 일차원 배열 더 쓴다고 시간복잡도가 높아지나? 싶은 생각이 들어 시간 초과 왜나는지 궁금합니다. public static int solution(int[][] sky) { boolean[][] visited = new boolean[sky.length][sky[0].length]; int count = 0; for(int i=0; i<sky.length; i++) { for(int j=0; j<sky[0].length; j++) { if(!visited[i][j] && (sky[i][j] == 1)) { bfs(sky, new int[]{i,j}, visited); count++; } } } return count; } public static void bfs(int[][] sky, int[] start, boolean[][] visited) { Queue<int[]> q = new ArrayDeque<>(); q.offer(start); visited[start[0]][start[1]] = true; while(!q.isEmpty()) { int[] cur = q.poll(); System.out.println("start: " + start[0] + start[1] + "/ poll: " + cur[0] + ", " + cur[1]); // cur의 상하좌우 중 갈 수 있는 길 & visited 안한 길을 q에 넣기 int[] r = {-1, 1, 0, 0}; int[] c = {0, 0, -1, 1}; int w = sky[0].length; int h = sky.length; for(int i=0; i<r.length; i++) { int[] sub = new int[]{cur[0]+r[i], cur[1]+c[i]}; System.out.println("sub:" + sub[0] + ","+sub[1]); if((sub[0] >= 0 && sub[0] < h && sub[1] >= 0 && sub[1] < w) && (sky[sub[0]][sub[1]] != 0) && (!visited[sub[0]][sub[1]])) { q.offer(sub); visited[sub[0]][sub[1]] = true; System.out.println("sub offer:" + sub[0] + ","+sub[1]); } } } }
-
미해결2026 코딩테스트 올인원 [JAVA]
DFS vs BFS 중 BFS 추천해주신 것 관련 질문
안녕하세요![part6.구름의 개수1] 강의에서 DFS vs BFS 중 DFS 사용하면 스택오버플로우 가능성이 있어서 대안을 말씀 해주셨는데요.암시적그래프에서 구현 시에 해당하는건지, 다른 케이스에서도 그러한지 궁금합니다.암시적그래프에서 모두 1인 경우 재귀가 많이 호출되어서 그게 문제인거같은데, 다른 유형에서는 그런 경우가 없을까요?
-
미해결자바스크립트로 배우는 자료구조 & 알고리즘 (개념+문제풀이)
생산 공정 최적화 (이분탐색) worst Case 수정
function solution(n, speeds) { let left = 1; let right = Math.min(...speeds) * n; //최악의 경우 : 가장 빠른 기계가 n개의 제품을 만드는 시간 let answer = right; while(left <= right){ const mid = Math.floor((left+right) / 2) let total = 0; for (let time of speeds) { total += Math.floor(mid/time) // 중간 시간에 생성할 수 있는 제품 수 } if(total >= n){ answer = mid; right = mid - 1; } else { left = mid + 1; } } return answer } console.log(solution(8, [5,9])) console.log(solution(6, [7,10])) 최악의 경우가 가장 느린기계가 제품을 모두 생성하는 시간이 아닌 가장 빠른 기계만 사용해서 제품을 모두 만드는 경우가 최악의 케이스 같습니다!
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
equals의 재정의(overriding)에 대해서
먼저, 이렇게 양질의 강의 올려주셔서 정말 감사드립니다. 잘 듣고 있습니다. 49강의 실습에서 equals 메소드를 재정의한다고 말씀하셨습니다. 그런데, MyString은 Object로부터 equals(Object)를 상속 받았고, 강의에서 보여주신 코드에서는 equals(MySring)을 정의했으므로, 메소드 시그니처가 달라 재정의(overriding)보다는 overloading이 더 적절한 표현이 아닌가 싶어서 질문드립니다. 실제로 인텔리제이에서 equals(MyString)에 @Override 어노테이션을 붙이려하면 아래의 사진과 같은 오류가 발생합니다.아니면 제가 재정의에 대해서 오해하고 있는 부분이 있는걸까요?
-
해결됨기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM
TestEx 객체 생성 시 생성자 호출 질문
안녕하세요. 강의를 듣던 중 생성자 호출 결과와 관련해 궁금한 점이 생겨 질문드립니다.해당 예제에서 new 연산자 사용 시 다중 정의된 int 타입 파라미터를 받는 생성자가 호출된다고 설명해 주셨는데, 그 이유가 궁금합니다.new 연산자에 int 타입 매개변수를 전달한 상황을 가정하고 설명하신 것일까요?강의와 유튜브 항상 잘 보고 있습니다. 감사합니다.
-
미해결개발 역량 + 자격증까지, Java로 PCCP 자격증 준비하기
응시권 재발송해주시길 바랍니다.
응시권이 확인되지 않습니다.재발송해주시길 바랍니다.
-
미해결자바스크립트로 배우는 자료구조 & 알고리즘 (개념+문제풀이)
버블정렬
function bubbleSort(array) { const n = array.length for (let i=0; i<n; i++){ for (let j=0; j<n; j++) { if (array[j] > array[j+1]) { [array[j], array[j+1]] = [array[j+1], array[j]] } } } return array } console.log(bubbleSort([77, 42, 6, 4, 3, 5, 1, 35, 222])) 수업에서 사용하신 코드인데 버블정렬의 브레이크 포인트와 이미 정렬된 뒷 부분까지 비교할 필요가 없지 않나요? 저렇게 사용하신 다른 이유가 있으신 지 여쭤보고 싶습니다!function bubbleSort(array) { const n = array.length for (let i=0; i<n-1; i++){ let swapped = false; for (let j=0; j<n- i; j++) { if (array[j] > array[j+1]) { [array[j], array[j+1]] = [array[j+1], array[j]] swapped = true; } } if (!swapped) break; } return array } console.log(bubbleSort([77, 42, 6, 4, 3, 5, 1, 35, 222]))
-
미해결자바스크립트로 배우는 자료구조 & 알고리즘 (개념+문제풀이)
학습 방향성에 대한 문의
구현 원리는 어느정도 이해하였고 강의를 보고 구현 코드도 이해하였는데 직접 코드로 구현하려고 하니 잘 안됩니다 기본적인 예제나 구현을 암기하는게 맞을까요? 아니면 문제풀이를 반복하면서 막히면 보고해서 익숙할 때까지 푸는 방향이 맞을까요? 문제풀이와 구현 암기 중 어떤 것이 선행되어야 하는 지 여쭤보고 싶습니다
-
미해결자바스크립트로 배우는 자료구조 & 알고리즘 (개념+문제풀이)
큐 구현 관련
현재 queue는 따로 구현하지 않고 shief() 메서드를 이용하고 있는데 queue 구현하지 않고 shief()로 했을 때 성능차이 크게 없을까요? 코딩 테스트 시에도 이렇게 진행해도 되는 지 여쭤보고 싶습니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
3-8 해쉬 -2
def get_absent_student(all_array, present_array): all_set = set(all_array) present_set = set(present_array) return all_set - present_set이런식으로 작성하였는데 해쉬 테이블을 사용한 방법과 비교했을 때 어떤 가요?
-
미해결코테의 바이블 [java]
섹션6에 있는 [코테 TIP] visited 초기화 부분이 자바 내용이 아니라 파이썬으로 되어있습니다
섹션6에 있는 [코테 TIP] visited 초기화 부분이 자바 내용이 아니라 파이썬으로 되어있습니다.자바 내용으로 최신화해주셔야 될 것 같습니다
-
미해결2026 코딩테스트 올인원 [JAVA]
part5. 청팀홍팀 풀이 질문 드립니다.
안녕하세요! 남노씨님 덕분에 강의 잘 들으며 학습중입니다. part5.청팀홍팀 풀이로 보여주신 것에서 질문이 있습니다.문제의 Input 예시 이해가 잘 되지 않았습니다.제가 혼자 생각했을 때는, 주어진 friends[][] 배열을 인접리스트로 만들어야한다고 생각했고, 서로는 쌍방이니 양방향 그래프. 양방향 값을 인접리스트에 넣어주어야 한다고 생각했습니다. 근데 input 예시를 보니, 예시1은 서로 양방향 없이 구성되어있고, 예시2는 인접리스트처럼 서로 양방향으로 구성되어있습니다. 이상황에서 인접리스트를 구성하려니 예시2로는 중복이 발생하더라구요.1. 예시 1,2 기준이 달라보이는데 어떻게 해석해야 좋을까요?2. 양방향 그래프=무방향 그래프 같다고 볼 수 있나요? 이 문제의 경우 어떤 그래프인지, 구현의 차이점이 있는지 궁금합니다.3. 풀이에서는 인접리스트를 별도로 안만들고, 받은 배열 자체를 인접리스트인것처럼 바로 사용하였는데, 이전 풀이와 비교해서 왜 이렇게 사용하였는지 궁금합니다. (문제에서 캐치할 수 있는 차이점이 뭘지)4. dfs/bfs에서 사용하는 자료구조(큐,재귀/스택)는 풀이에 사용하지 않으셨는데 문제 상 필요 없는건지, 이분그래프일 때 사용 안해도 되는지 궁금합니다. (일단 bfs 큐 사용한 구조 만들고 시작했는데 이렇게 접근하면 안되는걸까요?ㅠㅠ)이해 도와주시면 감사하겠습니다 :)
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
Linked List Element Delete Explanation Problem
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 아래 코드(TODO; 제가 만든 삭제코드, 정답지; 제공된 교재 답 풀이본) 에 대해 문의드립니다. 5,9,12,27 일때 정답지를 통해 결과를 뽑아보면 삭제가 안되는 현상이 일어납니다. 이와 관련해 어떻게 생각하실지 여쭙습니다!class Node: def __init__(self, data): self.data = data self.next = None class LinkedList: def __init__(self, value): self.head = Node(value) def append(self, value): cur = self.head while cur.next is not None: cur = cur.next cur.next = Node(value) def print_all(self): cur = self.head while cur is not None: print(cur.data) cur = cur.next def get_node(self, index): node = self.head count = 0 while count < index: node = node.next count += 1 return node def add_node(self, index, value): new_node = Node(value) if index == 0: new_node.next = self.head self.head = new_node return node = self.get_node(index - 1) next_node = node.next node.next = new_node new_node.next = next_node # def delete_node(self, index): # TODO # if index == 0: # 첫번째 노드를 불러와야 출력이 가능하므로 0번째 인덱스를 제거하려고하면 1번쨰 인덱스를 head로 지정 # self.head = self.head.next # return # before_node = self.get_node(index-1) # 1. 제거해야할 노드 이전 노드 찾기 # delete_node = self.get_node(index) # before_node.next = delete_node.next # 2. 이전 노드 next를 제거할 노드의 next로 # delete_node.next = None # 3. 제거할 노드의 next 를 None # return "index 번째 Node를 제거해주세요!" def delete_node(self, index): # 정답지 if index == 0: # 첫번째 노드를 불러와야 출력이 가능하므로 0번째 인덱스를 제거하려고하면 1번쨰 인덱스를 head로 지정 self.head = self.head.next return before_node = self.get_node(index-1) # 1. 제거해야할 노드 이전 노드 찾기 before_node = before_node.next.next return "index 번째 Node를 제거해주세요!" linked_list = LinkedList(5) linked_list.append(9) linked_list.append(12) linked_list.append(27) print("제거 전") linked_list.print_all() print("제거 후") linked_list.delete_node(3) linked_list.print_all()
-
미해결2026 코딩테스트 올인원 [JAVA]
추후 학습 계획 질문
안녕하세요!강의 수강 완료 후에는 복습하면서 다양한 문제를 풀어보면서 학습하는 방법이 좋을까요?..
-
해결됨코딩 테스트 합격을 위한 리트코드 핵심 문제 풀이
강의 순서
강의 수강 방법에 대해서 질문이 있습니다.저는 Blind75를 순서대로 풀고 있는데 강의 순서랑은 Blind75 순서랑 조금 다르더라구요 자료구조 알고리즘을 모르는 상태로 강의를 시작해도 되는지 1번과 연계되는 질문으로 일단 문제 풀이를 시도하되 한 문제당 어느정도의 시간을 두고 풀면 되는지 보통 10분 정도 고민해보고 정말 모르겠다면 문제풀이 강의를 바로 들어보는 편입니다.Blind75 순서대로 문제를 풀면서 풀지 못한 문제에 대해서만 강의를 시청하면 되는지 좋은 강의 만들어주셔서 감사합니다.