묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
링크드 리스트 끝에서 k번째 값 출력하기
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 2주차어떤 알고리즘을 학습하고 계신가요? 2주차 숙제여기까지 이해하신 내용은 무엇인가요? 링크드리스트, 재귀 2. 어려움을 겪는 부분어느 부분에서 막히셨나요? 2주차 숙제 1번끝에서 k번째를 구하는게 문제잖아요? 근데 정답 코드를 보면 fastNode는 끝이 아닌 끝보다 한칸 더간거고, slownode(정답이 될)는 한칸 더간 fastnode에서 k번째 떨어질 경우 답이 되는데 while문을 fastnode.next is not None의 조건을 해줘야 링크드 리스트 끝에서 라는 문제의 의미에 더 맞지 않나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
sk 하이닉스 코테 대비
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 큰돌님 현재 2주차까지 강의 수강 및 연습문제를 다 풀었는데 sk 하이닉스 대비 하기 위해서 프로그래머스 고득점 kit 풀면서 3주차 완전탐색 강의를 같이 들으면 될까요? 어떻게 효율적으로 대비할지 모르겠습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-G 최댓값 질문
#include<bits/stdc++.h> using namespace std; int n, k, visited[100004], cnt[100004]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> k; queue<int> q; visited[n] = 1; cnt[n] = 1; q.push(n); while(q.size()){ int a = q.front(); q.pop(); int next[]={a-1, a+1, a*2}; for(int i=0; i<3; i++){ int na = next[i]; if(na<0 || na>100000) continue; if(!visited[na]){ q.push(na); visited[na] = visited[a] + 1; cnt[na] += cnt[a]; }else if(visited[na] == visited[a] + 1){ cnt[na] += cnt[a]; } } } cout << visited[k] - 1 << "\n" << cnt[k] << "\n"; return 0; }문제에서 최대값이 10만인데 만약 k = 10만이라면 수빈이가 10만 이상으로 갔다가 뒤로 돌아오는 경우는 왜 제외해도 되는지 궁금합니다!
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
LinkedList 과제 Fast, slow 포인터
1. 현재 학습 진도2챕터 과제, 끝에서 K번째 노드값 구하는 문제LinkedList 2. 어려움을 겪는 부분fast 포인터를 k만큼 움직이고 slow, fast를 동시에 움직여 fast노드가 끝에 도달때까지 반복해 k만큼 떨어진 slow노드를 반환하는것은 이해했습니다. 그런데 fast 노드를 끝까지 보내는 While 문 조건에서 저는 fast.next가 없을 때 가 마지막 노드라고 생각했습니다.하지만 선생님이 실제로 구현할 때는 이전에 구두로 설명하신것과는 약간 다르게 fast 가 마지막 노드가 아닌 거기서 한번 더 반복되어 fast == None 일때까지 움직여 k번째 노드를 찾으시더라고요. 왜 마지막노드에서 멈추는게 아니라 설명과 좀 다르게 2개의 포인터를 한칸씩 더 움직여 none이 될때까지 움직이도록 했는지 궁금해 강의 끝 시각화 해주신 부분을 봤습니다.강의 끝에 시각화 하는 부분에서도 첫번째 풀이방법의 답은 10, 두번째 풀이방법의 답은 9가 나오면서 각 풀이방법의 정답이 달라진것 처럼 나오게 됐습니다.구두로 설명하셨던 것보다 결국 index를 한칸 더 가서 fast가 None이 돼야 정답이 되던데 일반적으로 LinkedList 문제에서 마지막 노드까지 반복문을 돌린다고 가정하면 원래 currentNode가 None이 될때까지 돌려서 푸는건가요??? 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결코테의 바이블 [java]
섹션[6] 66.[출제유형] 거리측정, 최단거리 페이지 오타
섹션[6] 66.[출제유형] 거리측정, 최단거리 페이지 오타 방법 2) 큐에 거리 정보까지 함께 저장하는 방식 ✔ visited를 사용한 구현 코드 설명에 visited 코드 예시가 아니라 아래 설명되어있는 distance와 동일한 코드 예시로 되어있습니다.visited로 활용하는 코드로 변경 필요할 것 같습니다. 현재 노션도 이와 동일하게 되어있습니다..!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
안녕하세요 선생님.마지막 예제 문제에서 가지치기로 ret = 10일 때 가지치기를 한다고 하셨는데, 만약 ret이 10이 아닌 경우도 있을 수도 있는데 어떻게 10이 있을거라고 확신하고 분기를 넣을 수 있는건가요?
-
미해결[2026] 비전공자도 한 번에 합격하는 SQLD 올인원
제 3정규화 관련 질문
아래 빨간색 박스에 해당하는 내용이 이해가 되지 않아서 여쭤봅니다. 아래 과목 테이블을 보시면, 과목명 (미적분)을 알아도 담당교수가 홍길동인지 나적분인지 모르는데 , A -> B 함수 종속이 어떻게 이루어지는건지 모르겠습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 코드 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/d93ba2b4653c4773ac3908fa1d67eb1a제가 구현한 코드인데 어떤 부분에서 오류가 발생했을지 모르겠습니다.저는 일단 동생이 500000범위까지 걸으면서 걸리는 시간을 미리 구해놨습니다. 그리고 bfs와 visited[2][500002]을 이용해 visited[0][next]에는 해당 next에서의 최단거리를 넣어주었고, visited[1][next]에는 동생이 next에서 수빈이보다 걸린시간이 더 크면서 둘의 차가 짝수(즉 둘다 홀수 또는 둘다 짝수)일때 동생의 걸린시간을 넣어주었습니다.그후에 다시 동생이 도달할 수 있는 좌표를 탐색하면서 가장 적게 걸린시간을 mn변수로 출력했습니다.메모리크기나 시간복잡도 때문에 틀린건 아닌듯해서 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-N 질문 있습니다.
안녕하세요 ㅎㅎ 선생님 풀이를 보니 구간을 나눠서 재귀적으로 탐색하는 반면에,저는 레벨별로 다음 레벨로의 탐색을 위해 오프셋을 설정하는 식으로 하였는데 이렇게 풀이해도 괜찮을까요?http://boj.kr/df70c36018424d2984c3b5501545549f
-
미해결38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
투포인터 시간복잡도
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 2챕터/10강어떤 알고리즘을 학습하고 계신가요? 링드크리스트여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요? 투포인터 시간복잡도 부분코드의 어떤 로직이 이해가 안 되시나요? 끝에서 k번째의 값 문제 부분에서 11분 38초 자막에 N이 매우커지면 2N과 N이라서 차이가나긴한다고 되어있는데 투포인터도 2N의 시간복잡도 아닌가요? fast가 N만큼 slow가 N-K만큼 시간복잡도가 걸리고 이것은 1번풀이에서도 동일한거 아닌가요?왜 N값이 커지면 달라지는지 궁금합니다.어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
해결됨38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
수강평 작성 후 자료
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊 강의 듣고 수강평 작성했는데 수강평 작성하면 받는 자료를 아직 못 받았습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
학습방법
안녕하세요 학습방법에 질문이 있습니다제가 C를 배웠었고 코딩테스트 때문에 c++를 배우려고 해당 강의를 신청했습니다c++ 문법에 대한 지식이 아예 없습니다강의를 듣기전에 알고리즘 교안을 다 공부하고 강의시청을 들어가야하나요?- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결2026 코딩테스트 올인원 [JAVA]
노션 링크 질문드립니다!
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요!마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요.커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요.편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ 안녕하세요 강사님 유익한 강의 잘 듣고 있습니다!구글폼을 통한 노션 링크를 24시간 후에도 못 받았는데 따로 이메일을 통해 직접 전달주시는건가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-H 질문 있습니다 (코드 리뷰)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/b3eb3e9c71734920b90744bbb7a53927 안녕하세요,문제의 벽이 1 2 4 8로 구성된 것을 보고 비트마스킹으로 벽을 허물 수 있지 않을까? 해서 생각해본 코드입니다.comp까지는 미처 풀때 생각하지 못하고(그리고 comp 사이즈가 2504인 것은 모든 칸이 벽으로 차있는 경우를 상정하여 50*50 + 알파로 하신 게 맞나요?)한번 자연적으로 주어진 상태에서 문제에서 요구하는 1번, 2번 답을 구한다모든 벽을 한번씩 허물어본다 (이때 solve 로직 전후로 비트 조작)그래서 3번 답을 구한다이런 로직으로 생각을 해봤는데 선생님의 답과 비교해봤을 때 조금 더 1차원적이었던 것 같습니다. 실제 이 문제가 코테에 나온다 가정했을 때도 아마 제 풀이를 일단 시도해봤을 것 같은데, 적절한지 여부가 궁금합니다. 항상 감사합니다!
-
해결됨2026 코딩테스트 올인원 [JAVA]
[문제풀이] network delay time
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요!마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요.커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요.편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~정답 풀이 코드가 이상한거 같아요 ,,!e1[2] - e2[2] 로 코드를 구성하면 OutOfBound에러가 발생해요~e1[0] - e2[0] 이렇게 구성해야하는게 아닌가요 ? curCost + edge[0] 에서 edge[0]가중치가 아니라 출발 노드 이므로edge[2] 을 더 하는게 맞지 않나요? curCost + edge[2] new int[]{curNode, nextCost}큐에 {curNode, nextCost} 추가 → 배열 형식이 {cost, node}여야 하는데 순서와 값이 모두 잘못된거같은데 맞을까요 ?public class NetworkDelayTime { public int solution(int[][] times, int n, int k) { // 그래프 구현 Map<Integer, List<int[]>> graph = Arrays.stream(times) .collect(Collectors.groupingBy(t -> t[0])); // 다익스트라 알고리즘 Map<Integer, Integer> costs = new HashMap<>(); Queue<int[]> pq = new PriorityQueue<>((e1, e2) -> e1[0] - e2[0]); pq.add(new int[]{0, k}); while (!pq.isEmpty()) { int[] cur = pq.remove(); int curCost = cur[0]; int curNode = cur[1]; if (!costs.containsKey(curNode)) { costs.put(curNode, curCost); if (!graph.containsKey(curNode)) continue; for (int[] edge : graph.get(curNode)) { int nextCost = curCost + edge[2]; pq.add(new int[]{nextCost, edge[1]}); } } } // 방문 못한 노드 찾기 for (int node = 1; node < n + 1; node++) { if (!costs.containsKey(node)) { return -1; } } // 최소값중에서 최대값 구하기 return costs.values().stream() .mapToInt(Integer::intValue).max().getAsInt(); } public static void main(String[] args) { NetworkDelayTime solution = new NetworkDelayTime(); int[][] times = { {2, 1, 2}, {2, 3, 5}, {2, 4, 1}, {4, 3, 3} }; int result = solution.solution(times, 4, 2); System.out.println(result); } }이렇게 구현하니 제대로 돌아가서 문의드립니다
-
미해결2026 코딩테스트 올인원 [JAVA]
위상정렬 구현 관련
package 위상정렬; import java.util.*; public class 위상정렬 { public int[] topologicalSort(int nodesNum, int[][] edges) { // 주어진 입력을 사용하기 편한 형태로 변경 -> 방향그래프로 변경 Map<Integer, List<Integer>> graph = new HashMap<>(); int[] indegree = new int[nodesNum]; // edges의 원소 [v, u]는 u -> v 의 방향을 가지 edge를 뜻한다. for (int[] edge : edges) { graph.putIfAbsent(edge[1], new ArrayList<>()); graph.get(edge[1]).add(edge[0]); indegree[edge[0]]++; } Queue<Integer> queue = new ArrayDeque<>(); boolean[] visited = new boolean[nodesNum]; int[] order = new int[nodesNum]; // 위상정렬을 수행한다. // indegree == 0 인 정점부터 탐색이 시작된다. int count = 0; for (int c = 0; c < nodesNum; c++) { if (indegree[c] == 0) { queue.add(c); visited[c] = true; order[count] = c; count++; } } while (!queue.isEmpty()) { int cur = queue.remove(); if (graph.containsKey(cur)) { // 해당 정점과 연결된 노드들의 진입차수에서 1빼기 for (int next : graph.get(cur)) { indegree[next]--; // 진입차수가 0이면 이제 방문해도 된다는 뜻이기 때문에 queue에 추가해준다. if (indegree[next] == 0) { visited[next] = true; order[count] = next; count++; queue.add(next); } } } } return order; } } 안녕하세요 ~ 위상정렬 관련해서 문의사항이 있어서요 ~ 다름이 아니라 강의의 구현 코드에서 visited를 체크를 하고 있던데 위상정렬의 경우 사이클이 없는 방향 그래프인데 visited가 필요할까요 ?? 현재 코드에서도 visited를 선언만 하고 따로 활용을 하고 있지 않은거같아서 문의 드립니다 ~
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
안녕하세요 선생님좋은 강의 올려주셔서 감사해요꼼꼼하게 알려주셔서 잘 따라가고 있습니다 :) 중소기업 입사 코딩테스트 기준으로 질문이 있습니다. 문제 푸는 속도 -> 1시간 이내가 가능하다고 가정했을 때백준 티어 어디까지는 풀어낼 수 있어야 할까요?
-
미해결김영한의 실전 자바 - 중급 2편
제네릭 타입 매개변수 제한과 관련한 문의입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]영한님, 안녕하세요.강의를 들으며 부족하다고 느껴졌던 기본기를 덕분에 잘 습득하고 있습니다!타입 매개변수 제한 강의를 듣고 나서 궁금한 점이 생겨 Q&A를 남기게 되었습니다.제네릭을 도입하고 타입 매개변수를 제한함으로써,1. 코드의 재사용성 증가2. 타입 안정성 보장위 두 가지의 강력한 장점을 가진다는 부분을 잘 이해했습니다.다만, 클라이언트 코드에서 인스턴스를 생성하는 과정에 타입 매개변수를 아래와 같이 Animal로 지정하게 된다면 개발자의 실수가 발생할 수 있는 부분이 있다고 생각합니다.AnimalHospitalV3<Animal> animalHospital = new AnimalHospitalV3<>(); animalHospital.set(new Dog("dog", 100)); Dog biggerAnimal = (Dog) animalHospital.bigger(new Cat("cat", 100));위와 같은 코드는 다형성만을 사용하여 개션한 코드와 같이 Java 컴파일러가 잡아주지 못하고, 런타임 시점에 오류가 발생하게 됩니다. (Animal 클래스를 추상 클래스, interface로 선언해도 타입 인자로 지정하는 것을 막지 못합니다.)이런 상황일 때, 개발자의 실수를 최대한 방지할 수 있는 방법이 어떤 것이 있을지 궁금합니다.항상 좋은 강의 만들어주셔서 감사합니다.덕분에 잘 배우며 기본기를 다져가고 있습니다!
-
미해결김영한의 실전 자바 - 중급 2편
강의가 좀 버겁다 느껴질 때 학습방법 문의
기본기 부족한 n년차 개발자 입니다.입문, 기본, 중급1까지 완강했고, 현재 중급2 수강중입니다. (최종목표는 자바, 스프링, 데이터베이스 대부분의 강의를 로드맵 따라 익혀가는 것입니다.)컬렉션 프레임워크(ArrayList) 부분부터 좀 버거운 느낌이 있는데, 강의를 어설프게 이해하며 따라가고 있는 것 같아 문의드립니다. (사실 잘 이해 못하고 있는 걸지도...) 우선 강의 듣는 자세는 다음과 같습니다.하나하나 따라치며 강의를 듣기에는 오래 걸리고 하다가 지쳐서 중도포기 할 것 같아 강의를 쭉 돌려본다는 생각으로 학습하고 있습니다. (1배속) IDE에서 소스코드 열고 강의 들으면서 중간중간 눈으로 이해하며 넘어가고 있음 (부분적으로만 아조 조금씩 따라 치고 있음) 강의자료 설명 부분은 어느정도 이해가 가는데 코드 작성 부분에서는 조금 버겁게 느껴짐즉, 과연 내가 이 코드들을 작성할 수 있을까, 다음 강의들을 잘 따라갈 수 있을까 걱정되는 부분이 있음 어떻게 해야 잘 습득해갈 수 있을까요?강의는 더할 나위 없이 만족하고 있습니다
-
미해결2주만에 통과하는 알고리즘 코딩테스트 (2024년)
dp[x]가 최대값이라고 확신할수 있는 이유
안녕하세요.잘 이해가 가지 않는 부분이 있어 질문드립니다.If dp[idx]!=-1: Return을 하는데, idx가 끝까지 가서 끝에서 부터 계산되는 것은 이해가 되는데, 처음 들어간 값이 항상 max값이라고 어떻게 확신할수 있는지를 모르겠습니다.dp[idx]가 들어있는 경우는 항상 최대값이라는 것에 대해 설명해주실수 있으실까요?