수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
질문 드립니다!
public String solve(String s) { Stack<Integer> countStack = new Stack<>(); Stack<StringBuilder> stringStack = new Stack<>(); StringBuilder tmp = new StringBuilder(); StringBuilder result = new StringBuilder(); int k = 0; for(char c : s.toCharArray()) { if(Character.isDigit(c)) { k = k*10 +c-'0'; //1, 12 } else if(c =='[') { countStack.push(k); tmp = new StringBuilder(); k=0; } else if(c ==']') { System.out.println("~~~~~" + tmp); stringStack.push(tmp); StringBuilder str = stringStack.pop(); for(int i=countStack.pop();i>0; i--) { System.out.println("!!!!!!!!!!!!!!" + tmp); str.append(tmp); } result.append(str); } else { tmp.append(c); } } return result.toString(); } } ======================= ~~~~~ 와 출력되는 tmp가 맞는 출력입니다 !!!!!!!!!!!!!!와 출력되는 동일한 tmp는 위의 출력결과의 두배로 출력됩니다ㅜ 해결법을 찾지 못하여 질문 드립니다. 감사합니다.
- 해결됨코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
PriorityQueue
안녕하세요 선생님 강의를 보다가 문제가 잘 이해가 가지 않아서 질문드립니다. PriorityQueue 문제 내용이 양의 정수 길이의 두 막대기 연결할 수 있다. x와 y의 비용을 지불한다 스틱 x + y => 이런식으로 연결하여 스틱이 하나만 남을 때까지 모든 스틱을 최소 연결 비용을 반환합니다. 인데요... 그 다음에 나오는 예시가 스틱 = [1, 8, 3, 5] 일때 1하고 3을 갑자기 더하고 그 더해진 값인 4하고 5를 더하고 이런식으로 작은 값부터 더해가시는데요... 위의 문제 내용중에 작은값부터 x 와 y를 정하여 라는 말도없는데 갑자기 이런식으로 더해가니까 이해가 되지를 않습니다..ㅠ 전반적으로 문제들이 앞뒤가 잘려있는 느낌이 듭니다. 설명 부탁드립니다.😥
- 해결됨코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
면적을 구하는 res를 for문 내에 있는 if문 안에 넣으면 되지 않나요?
- 안녕하세요 선생님 강의 잘 듣고 있습니다^-^ 덕분에 코테는 벌벌 떨던 제가 BFS랑 DFS에 대해서 이런거였어? 싶을 정도로 쉽게 이해하고 있는 중입니다 감사합니다 ㅎㅎ 다름이 아니라 9:03 초에서 res를 while문 안에 작성하셨는데요 그렇게 되면 큐에 들어온 녀석 갯수만큼 추가 되면서 선생님이 뒤에 말씀하신 것처럼 최초 진입 시점의 갯수도 포함하게 되어서 최초 진입시점에도 grid[x][y] = 0 값을 넣게 되는데요 애초에 들어오고 나서 for문 내의 if문에서 방문했다(visited)라고 하는 조건 내에서 면적을 추가 시켜 주면 그러한 작업이 필요 없을 거 같아서요 아래 예시인데요.. 일단 값은 잘 나오는 지 테스트 해봤는데 이 부분은 어떻게 생각하시는지 궁금합니닷 (혹시 틀렸다면 알려주세요 ㅠㅜ..) private int bfs(int[][] grid, int x, int y) { Queue<int[]> queue = new LinkedList<>(); queue.offer(new int[] {x, y}); //0, 0 int area = 0; while (!queue.isEmpty()) { int[] point = queue.poll(); for (int[] dir : dirs) { int findX = point[0] + dir[0]; int findY = point[1] + dir[1]; if (findX >= 0 && findY >= 0 && findX < m && findY < n && grid[findX][findY] == 1) { grid[findX][findY] = 0; queue.offer(new int[] {findX, findY}); area++; } } } return area; }
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
강의에 있는 자료구조만 공부하면 되나요??
안녕하세요. 코딩테스트 처음 입문하는 학생입니다. 어디서부터 공부해야할지 찾아보다가 강의를 수강하게 되었습니다. 아직 수강 전이지만 궁금한 사항이 있어서 질문드립니다. 자료구조 종류가 굉장히 많이 있는것 같은데, 코딩테스트를 합격하는게 목표면, 자료구조는 강의에 있는것만 알고있으면 나머지는 응용력으로 코딩테스트 문제 모두 풀 수 있는지 궁금합니다.
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
bfs, dfs 강의 자료
마지막에 강의 자료가 짤렸어요 확인하고 올려주셨으면 좋겠어요.
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
문제가 이해가 안가요
강의를 한번 쭉 봤는데 무슨 문제인지 이해가 안가네요... 입력 문자열을 알파벳으로 바꿀 수 있는 유형의 개수를 구하는건지, 1개씩 떼서 알파벳으로 바꾸는 걸 구하는건지, 1의 자리 몇개 10의 자리 몇개를 구하는건지, 각 인덱스를 마지막으로 해서 만들 수 있는 알파벳의 수를 구하는건지 모르겠네여.. 이전 문제들은 어떤 문제인지 감으로 알 수 있었는데, 이 문제는 잘 모르겠네요
- 해결됨코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
만약 문자열이 매칭되는 조건("arrest", "test")이 문자열의 인덱스 기준 뒤에서부터 발생하면 어떻게 풀어야할까요?
만약 "arrest", "test" 처럼 두 개의 문자열 비교시 매칭되는 문자열이 "est"로 뒤에서부터 맞춰진다면 이런 경우는 어떻게 풀어야 할까요?
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
그림이 잘 이해되지 않습니다.
교재 화면 중 빨간색 박스는 어떤 의미인지 잘 이해가 안됩니다. substring index 라면 (0,0), (1,1), (2,2)...는 값이 없고 (0,1), (1,2) ...가 b, a,... 나오는데요, 그림으로 코드를 이해할 수가 없네요. ㅠㅠ 그리고 findSubstring(s,i,i)는 왜 있는 건지도 모르겠어요. 강의를 몇 번이고 돌려 들어도 모르겠습니다.
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
어떤 문제인지에 대한 설명이 없어서 이해가 안가네요;;
왜 9-6-2-1이라서 4인지 문제 설명이 없어서 시간지나면 문제 설명이 있을 줄 알았는데 도저히 이해가 안가네요;;;; 어떤 문제인가요?
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
강사님 문제가 잘 이해가 안가요
제가 생각하기에는 "121"이 주었졌을 때 [1,2,1] [12,1] [1,21] 따라서 output 3 "3621"이 주어졌을 때 [3,6,2,1] [3,6,21] 따라서 output 2개 이런식으로만 이해가 됩니다. 강사님은 "121"이 주어졌을 때 [1,2,1] [2,12] [21,1]로 알려주셨습니다. 여기서 제가 이해가 안되는게 [2,12]랑 [21,1]부분입니다. 먼저 [2,12]부분에서 12는 'L'로 바꾸는 것을 이해했습니다. 그런데 [12]에서 사용한 2를 또 사용해서 B로 바꾸시고 남은 1은 생략하셨는데 이부분이 이해가 안되네요.
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
merge함수 질문 있습니다.
강사님은 merge 함수에서 return에 intervals를 주셨습니다. 제 생각에는 before 객체를 추가한 result를 return에 써야된다고 생각했는데 결과는 같아서 그부분이 이해가 안갑니다. result변수의 쓰임새와 intervals값이 제대로 결과값이 나오는 이유를 알 수 있을까요.
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
dp 강의자료 어딧어요??
dp 강의자료 pdf파일이 없네요
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
응용문제4) DFS 응용문제 질문이요!
응용문제4) DFS 응용문제 영상중에 6:22 여기부분에 int len = 1+dfs(matrix,x,y,m,n,result); 여기서 앞에 1을 더해주는건 어떤것때문에 더해줘야 하나요?
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
Dp HouseRobber 질문
안녕하세요. DP문제를 풀어보는데 있어, 다른 응용문제를 보고 풀다가 단위케이스에 걸려 문의드립니다. 릿코드에서는 정상적으로 통과 되었지만, 이 문제와 동일한 프로그래머스 사이트에 "도둑질" 문제에서는 단위케이스 걸려 실패하였습니다.. ㅠㅠ 아래에 링크 첨부 드립니다. https://programmers.co.kr/learn/courses/30/lessons/42897 기존 문제는 제가 아래와 같이 풀었으나 선생님 공식과 조금 다른것 같아, 혹시 문제 유형이 다른건지 헷갈리기 시작했습니다. ㅠ public int solution(int[] money) { int moneyLength = money.length; // dp배열은 처음 집을 훔치기때문에 인접한 마지막 집은 훔칠수 없으므로 반복문은 length-1 전까지만 int[] dp = new int[moneyLength-1]; // 처음 집 안 훔칠 때 int[] dp2 = new int[moneyLength]; // dp[0]과 dp[1]은 0번째 집부터 1번째 집까지 가장 많이 훔칠수 있는 금액인데 0번집을 훔치기때문에 // 1번째 집은 훔칠수 없게 되고 dp[1]까지의 가장큰 금액은 첫번째 집을 훔친 경우이므로 dp[0],dp[1]에는 0번 집의 돈을 넣어 줬습니다. dp[0] = money[0]; dp[1] = money[0]; dp2[2] = 0; dp2[1] = money[1]; // 반복문을 돌면서 두번째 전의 최대 돈에 현재 번째 집의 돈을 합친것과 이전의 최대 돈을 비교하여 dp배열을 채웁니다. // 2가지 경우를 각각 money 배열의 인덱스만큼 왔을 때 누적시킨 dp값들의 max 값을 구하여 메모제이션 해줌 for (int i = 2; i < moneyLength-1; i++) { dp[i]=Math.max(dp[i-2]+money[i],dp[i-1]); } // dp2는 첫번째 집에서는 돈을 훔치지 않으므로 반복문은 length까지 돌렸습니다. for(int i=2; i<moneyLength; i++) { dp2[i]=Math.max(dp2[i-2]+money[i],dp2[i-1]); } // dp와 dp2의 마지막 값을 비교하여 더 큰값을 출력 하여 정답을 구하였습니다. return Math.max(dp[moneyLength-2],dp2[moneyLength-1]);}
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
DP 1분 간단 영상이 보이지 않습니다.
1분 영상이 보이지않네요. ㅠㅠ 드디어 DP를 배울 수 있게되서 감사합니다. 깃 허브에는 이미 몇가지 올라온것으로 보이는데 앞으로도 좋은 강의 부탁드립니다. 감사합니다.
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
스택 문제 영상이 추가적으로 들어갔습니다.
15분 18초까지 나오고 강의영상은 종료되는데 뒤에 8분이상이 추가로 붙은거 같습니다. 확인 부탁드립니다.
- 해결됨코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
list 질문입니다
제가 자바에 익숙하지 않아서 List<List<Integer>> result = new ArrayList<>(); 이 부분이 잘 이해 안되는데 list안에 list를 선언 한건가요? 그리고 class TreeNode { int val; TreeNode left, right; TreeNode(int x) { this.val = x; } } 이 부분에서 left,right는 요소인거 같은데 new로 root 객체 선언해서 만들고 그 요소로 접근해서 2,3넣고 left.left 로 4 넣고 이렇게 진행 하는게 맞는건가요?(틀렸다는게 아니라 몰라서 물어봅니다.) 그럼 계속 내려갈떄마다 객체선언한 root 뒤에 left,right로 내려가고 left,right로 접근해서 할당이 가능한지도 궁금하네요. 제가 잘 몰라서 .. 답변해주시면 감사하겠습니다.
- 미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
DP문제 문의
안녕하세요. 목차중에 DP가 들어있는데 아직 강의 준비 중이신지 궁금합니다. 혼자 DP문제를 여러개 접해보면서 점화식이라는게 있지만 이게 조금만 바꿔서 내면 응용이 전혀 안되고있습니다. ㅠㅠ DP문제도 역시 BFS처럼 공식으로 푸는게 가능할까요?
- 해결됨코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
Comparator 질문입니다.
이강의 듣기 전에 https://st-lab.tistory.com/112 여기서 compareTo를 먼저 접했는데 public int compare(String s1, String s2) { // 단어 길이가 같을 경우 if(s1.length() == s2.length()} { return s1.compareTo(s2); // 사전 순 정렬 } // 그 외의 경우 else { return s1.length() - s2.length(); } } }); 이 부분과 이 강의에서 하는게 같은 걸까요? 이 코드에선 s1.compareTo(s2); 가 바로 오름차순 정렬? 이고 반대(return s1.length() - s2.length();) 가 내림차순 정렬같은데 Comparator 개념 잡기가 좀 힘드네요.. 알려주시면 감사하겠습니다.
- 해결됨코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
안녕하세요. 질문입니다.
안녕하세요. 강의 사서 잘 보고 있습니다. 혹시 강의 문제 내용은 직접 만드시는 건가요? 리트코드 하신거 처럼 강의 문제 있으면 풀어보려 했는데 혹시 있나 해서 질문 드립니다. 그리고 강의 추가내용들은 언제 올라올까요.ㅠ 다른 강의들도 빨리 보고 싶네요.