학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 편하게 질문주세요:) 직접 답변 드리도록 하겠습니다~ Queue에 값을 추가하는 메서드는 enque offer 두 가지가 있다고 강의에서 말씀 주셨습니다. 둘 다 똑같이 값을 추가하는걸까요? 만약 맞다면, 어떤 차이점이 있는지 궁금합니다. (어떤 상황에서 사용되는지도 궁금해요.) +추가적으로, queue.poll() 이 dequeue다 라고 말씀 주셨는데, 둘도 어떤 차이가 있는지. 어떤 상황에서 사용하는지도 궁금합니다!
public class Subsets { List<List<Integer>> ans = new ArrayList<>(); List<List<Integer>> solution(int[] nums, int m) { dfs(nums, m, 0, new ArrayList<>()); return ans; } void dfs(int[] nums, int m, int start, List<Integer> curr) { //base case ans.add(new ArrayList<>(curr)); // 매순간 ans에 추가 //상태 전이 for(int i=start; i< nums.length; i++) { curr.add(nums[i]); dfs(nums, m, i+1, curr); curr.remove(curr.size()-1); } } } ans를 전역변수로 설정하고 for문으로 상태 전이할때마다 ans값을 수정하는 방식으로 구현할때 addAll(dfs(nums, m, i+1, curr));으로 하니 dfs가 void로 리턴돼서 에러가 나는데 위의 코드 블럭과 같이 dfs(nums, m, i+1, curr);로 실행하고 basecase에서만 ans에 curr을 추가하는 방식으로 하면 되는걸까요? 질문 봐주셔서 감사합니다!
강사님 안녕하세요! 실제 코딩 테스트를 진행할 때, 혹시 '깨지는 유리 다리 건너기' 문제 기준으로 난이도가 더 높거나 낮거나, 비슷하거나 하는 평균치가 있을까요? 실제 취업 프로세스에서 코딩테스트의 난이도 평균치가 어느정도 되는지 잘 모르고 있어서 조언 주시면 감사하겠습니다.
연속된 부분수열이라 투 포인트로 접근했는데 잘 안되었는데 여기서 멘탈이 나가서 한참 보다가 강의를 보게되었습니다. 크기를 보면 브루트포스로 풀수 있을거라 생각했지만 효율적으로 풀고 싶어서 다른 알고리즘을 생각해봤습니다. 이것저것 시도해보고 가설을 세워봤는데 식이 복잡해지고 잘되지 않습니다 ㅠㅠ 강의를 보니 선생님이 그리디하게 풀어라고하는데 어떻게 하면 가설을 잘세우고 그리디 문제를 잘풀수 있을까요? + 모르는 문제는 오답노트를 하면서 익숙해지거나 외우는데 이런 그리디 문제는 외우면 안될것같아서 질문드립니다.
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 스택에 배열 참조 int[]가 아닌 배열의 인덱스만 저장해도 기존 weight 배열에서 값을 꺼내면 되니까 문제없지 않나요?? 그렇다면, 인덱스만 저장하지 않고 배열 참조를 저장하신 이유가 궁금합니다! 오히려 인덱스만 저장하는게 메모리 측면에선 이득이 아닌가 생각되어서 질문드립니다. 혹시 제가 잘못 생각하고 있다면 바로잡아주시면 감사하겠습니다!
while i <= (1 << (n - 1)): cnt = 0 for j in range(0, n): if values[j] & i: cnt += 1 total += min(cnt, n - cnt) i *= 2 result = min(result, total) 위 코드에서 & 연산은 두 값이 공통으로 포함하는 비트가 있는지 를 확인하기 위한 조건으로 사용되고 있습니다. 이때 &연산을 통해 무엇을 검사하는지, 또한 왜 H가 포함됐다고 생각하고 cnt를 증가시키는지를 알고싶습니다.
3-5 스택 강의에서 쓰인 탑 문제 코드 스니펫에 정답과 현재풀이값이 불일치하는 오류가 있어서 알려드립니다. print("정답 = [0, 0, 0, 3, 3, 3, 6] / 현재 풀이 값 = ",get_receiver_top_orders([3,9,9,3,5,7,2])) 라고 되어 있는데 강의에서는 현재 풀이 값이 아래와 같이 나옵니다. 아래가 정답이 되어야 할 것 같습니다. [0, 0, 2, 3, 3, 3, 6]
if(s>e) return; 부분을 빼도 if(s ==e) 부분이 기저사례를 잡아줘서 괜찮지 않을까 하여 돌려봤더니 n = 3일 때의 예제 출력이 되지 않았습니다. 왼쪽 하위트리의 경우 go(0, 0, 3); go(2, 2, 3)이 호출되면 다 return해서 start가 end보다 클 경우가 나올 수 있는지 궁금합니다. 적어도 n = 3일때는 나와야 하지 않을까 생각합니다.
안녕하세요, 강사님. 이번에 처음 코딩테스트 준비해서 강의를 듣게 되었습니다. 나중에 코딩 테스트를 볼 때 include같은 건 기본적으로 제공되는 건가요? 아니면 제가 필요한 건 외워서 가야하나요? 어느 코딩 테스트에서든 #include <bits/stdc++.h>를 사용할 수 있는건가요? 감사합니다
2026 최신 코딩테스트 자바, 195개 실제 기출 문제 분석 제목을 보고 이거다 싶어서 구매했어요. 강의의 제목과 강의에 대한 설명들을 볼때 195개에 대해 기출문제에 대해서 분석해주는 것처럼 보입니다. 실제로 본문 노션화면에서도 195개에 대해서 분석 한 것을 보여주는 것처럼 보여요. 초장에는 개념설명이기에 후에 195개에대해서 분석해주시는줄알았어요. 허나 자료에도, 강의에도 실제 기출 195개에 대한 분석 정보는 전혀 찾아볼수없습니다. 확인할 곳 이 있으면 알려주시면 좋겠고, 만약 아니라면 제목과 본문에서 해당 정보는 오해해 소지가 있어보입니다. 실제 기출 195개에 대한 분석이 없다면 환불요청하고싶어요.
package C06_07; import java.util.*; public class Main { public int[][] solution(int n, int[][] arr){ Arrays.sort(arr, new Comparator<int[]>(){ public int compare(int[] s1, int[] s2){ if (s1[0] == s2[0]){ return s1[1] - s2[1]; } else return s1[0] - s2[0]; } }); return arr; } public static void main(String[] args){ Main T = new Main(); Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int[][] arr = new int[n][2]; for (int i = 0; i < n; i++){ for (int j = 0; j < 2; j++){ arr[i][j] = scan.nextInt(); } } for (int[] x : T.solution(n, arr)){ for (int y : x) System.out.print(y + " "); System.out.println(); } } } 이렇게 진행을 하였는데 계속 오답이 나옵니다 왜 틀린 걸까요..? 테스트 케이스도 맞는데 왜 틀린지 모르겠습니다 ㅠㅠ