수강이 제한됩니다.
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결코딩테스트 실전 모의고사(with 자바)
유효한 솔루션이 없는 조건
유효한 솔루션이 없는 경우를 colsum의 모든 값의 합이 upper + lower의 값과 다른 경우로 진행을 해보았는데, 결국에 결과값만 정확히 나오면 되는건가요!!? public class Sec02 { public static void main(String[] args) { // TODO Auto-generated method stub int upper = 2; int lower = 2; String s = ""; int[] colsum = {2, 1, 1}; int sum = 0; int[][] result = new int[2][colsum.length]; //유효성 체크방법, colsum의 각 배열 값의 총합과 upper + lower이 같은 경우만 실행 //colsum의 총합 구하는 for문 for(int i = 0 ; i < colsum.length ; i++) { sum += colsum[i]; } //colsum의 총합과 upper + lower이 같은 경우만 실행 if(sum == (upper + lower)) { for(int i = 0 ; i < colsum.length ; i++) { //upper을 먼저 쓰는 로직으로 진행 if(colsum[i] == 2) { upper--; lower--; result[0][i] = 1; result[1][i] = 1; } else if(colsum[i] == 1 && upper > 0) { upper--; result[0][i] = 1; result[1][i] = 0; } else if(colsum[i] == 1 ) { lower--; result[0][i] = 0; result[1][i] = 1; } else if(colsum[i] == 0) { result[0][i] = 0; result[1][i] = 0; } } //출력 구문 s += "["; for(int i = 0 ; i < result.length ; i++) { for(int j = 0 ; j < result[i].length ; j++) { //배열의 시작일 경우, [를 넣어줌 if(j == 0) { s += "["; } // String에 값을 넣어줌 s += result[i][j]; //upper , lower 배열의 끝이면 ]를, 그렇지 않으면 , 를 찍어주는 if문 if(j == (result[i].length-1)) { s += "]"; } else { s += ","; } } //배열 사이 ,를 찍는 IF문, 마지막 배열일시에는 찍지 않음 if( i < result.length-1) { s += ","; } } s += "]"; System.out.println(s); } //colsum의 총합과 upper + lower이 다를 경우 []값만 출력. else{ System.out.println("[]"); } } }
- 미해결코딩테스트 실전 모의고사(with 자바)
다른 풀이방법질문
Stringbuilder를 쓰지 않고 아래 코드로 풀어보았는데, 이렇게 풀어도 문제가 없을까요?? 결과값은 똑같이 나옵니다! class Main { public static void main(String[] args) { String s = "(()())(())" ; int a = 0; char b[] = s.toCharArray(); for(int i = 0 ; i < s.length(); i++) { if(b[i] == '(') { a++; if(a==1) { b[i] = 32; } } else if (b[i] == ')') { a--; if(a==0) { b[i] = 32; } } } String result = new String(b); System.out.println(result); } } } }
- 미해결코딩테스트 실전 모의고사(with 자바)
Priority Queue 대신 LinkedList 사용 이유를 알 수 있을까요??
안녕하세요 강사님! 강의 잘 듣구있습니다. 혹시 제목 그대로 LinkedList 를 사용하신 이유를 알 수 있을까요? 또한, Priority Queue 사용시에는 초기 pq.add(new int[] {x, y, 1}); 이렇게 하면 되는지 문의드립니다!
- 미해결코딩테스트 실전 모의고사(with 자바)
result 가 없습니다.
안녕하세요 강사님. 강의 잘 듣고있습니다. 작성해주신 코드대로 하는데 결과 result가 없습니다..;; result 가 빈 배열이 나옵니다. makeword 메서드 부분에 dp 가 3개 이상일 경우에 return true를 해서 result 에 단어를 넣어줘야하는게 아닌가 싶습니다. 아래는 제가 강사님 코드를 수정해봤습니다. private static boolean makeWord(String word, Set<String> set) { if (set.isEmpty()) return false; // 1. dp boolean[] dp = new boolean[word.length() + 1]; // dp 첫번째는 무조건 True 로 둘 것이기 때문에 word 길이에 + 1 해서 만든다. List<Boolean> dp_list = new ArrayList<>(); for (boolean bool : dp) { dp_list.add(bool); } dp_list.set(0, true); int checkPoint = 0; boolean isCheck = false; for (int i = 0; i < word.length(); i++) { // 4 for (int j = 0; j < i; j++) { // 1 , 2 , 3 if (dp_list.get(j) && set.contains(word.substring(j, i))) { dp_list.set(i, true); break; } } } long count = dp_list.stream().filter(x -> x.booleanValue() == true).count(); if (count >= 3) { return true; } return false; } 그리고 처음에 문제에 words (중복 없음) 으로 제시되었는데 왜 set 으로 하신건지 궁금합니다.
- 미해결코딩테스트 실전 모의고사(with 자바)
영상 오디오가 너무 이상해요 ㅠㅠ
오디오가 이상하네요 ㅠㅠ
- 미해결코딩테스트 실전 모의고사(with 자바)
입출력 예시가 잘못된거 아닌가요??
안녕하세요 강사님. 입출력 첫번째 예시에 Output: [[1,1,0],[1,0,1]] 이렇게 되어있어야되는거 아닌지 문의드립니다.
- 미해결코딩테스트 실전 모의고사(with 자바)
가장 바깥 괄호제거
강의를 듣기 전에 먼저 풀어보고 어떻게 더 효율적으로 푸셨는지 볼려고 해당 로직으로 작성해서 보았습니다. 예제가 2가지였는데. 그중 "()()" 에 대한 예제를 돌리면 강사님이 알려주신 로직으로는 구현이 안됩니다. 이유는 강사님 처럼 하게 되면 없애지 않고 바로 유지해야되는 경우에 대한 방어로직이 없습니다. 해당 부분은 i 와 start가 차이가 1 밖에 안나는 경우 "()" 이것으로 보고 제외하지 않고 원문 그래도 뽑는 로직이 필요합니다.