월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
풀이과정 질문합니다.
안녕하세요!! 이번 문제는 강의를 보기전에 혼자서 풀어봤습니다. 저는 이문제를 2중for문으로 해결했습니다. 그리고 강의를 시청했는데 풀이 방법이 다르더군요... 그래서 갑자기 궁금해졌는데 코딩테스트문제를 풀때 언어에 내장되있는 기능들을 사용해도 되는건가요?? 아니면 하나하나 직접 만들면서 풀어야하는건가요?? 갑자기 궁금하네요.. ㅎㅎ
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
알려주신 peek메서드를 사용해서 풀 수는 없나요?
import java.util.*; // ()(((()())(())()))(()) -> 17 // (((()(()()))(())()))(()()) -> 24 class Main { public Integer solution(String str) { int answer = 0; Stack<Character> stack = new Stack<>(); for(char x : str.toCharArray()) { if(x=='(') { stack.push(x); } else { if(stack.peek()=='(') { stack.pop(); answer+=stack.size(); } else { stack.pop(); answer++; } } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); String str = kb.next(); System.out.println(T.solution(str)); } } 이런식으로 짜봤는데 첫번째 입력은 올바르게 출력되는데 두번째 입력은 잘못출력됩니다. 아무리 생각해도 뭐가 잘못됐는디 모르겠습니다. 어느 부분이 잘못 된건가요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드 확인 좀 부탁드립니다 ㅠㅠ
import java.util.*;public class Main { public int solution(int[][] arr, int[] arr2){ Stack<Integer> stack = new Stack<>(); int cnt = 0; stack.push(0); for(int x : arr2){ // 1 5 3 5 1 2 1 4 for(int i = 0; i < arr2.length; i++){ // 01 11 21 31 41 if(arr[i][x] > 0){ int a = arr[i][x]; if(a == stack.peek()){ stack.pop(); cnt++; } else stack.push(a); arr[i][x] = 0; break; } } } return cnt * 2; } public static void main(String[] args) { Main t = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[][] arr = new int[n][n]; for(int i =0; i < n; i++){ for(int j = 0; j < n; j++) { arr[i][j] = kb.nextInt(); } } int m = kb.nextInt(); int[] arr2 = new int[m]; for(int i = 0; i < m; m++){ arr2[i] = kb.nextInt() - 1; } System.out.println(t.solution(arr, arr2)); }}이렇게 코드를 작성해보았는데 런타임 에러가 뜨네요 ㅠㅠ 코드에어느 부분이 문제가 있는지 잚 모르겠어서 질문 남깁니다! */
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
for(int a : abc) 오류
<에러 내용입니다.>/judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:10: error: illegal start of type for(int c: str){ ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:10: error: ')' expected for(int c: str){ ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:10: error: <identifier> expected for(int c: str){ ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:15: error: <identifier> expected System.out.println(cnt); ^ /judger/run/943e7a3cacb94390ac0d218d19e1ef42/Main.java:15: error: <identifier> expected System.out.println(cnt); ^ 5 errors<아래는 제 코드입니다.>import java.util.Scanner; public class Main { Scanner scn = new Scanner(System.in); char[] str = scn.nextLine().toUpperCase().toCharArray(); int com = scn.next().toUpperCase().charAt(0); int cnt = 0; for(int c: str){ if(c == com){ cnt++; } } System.out.println(cnt); }인텔리제이에서는 잘 작동합니다.메인 메소드 안에 내용만 복붙했고 잘 작동해야 하는데for(:) 작동 못 하는 것 같은데 자바 버전 몇인가요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Hash - K번째 큰 수 에 대한 질문입니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 현재 문제에서 모든 조합을 구하는 부분에서 3중 for 문을 사용하고 있습니다. 문제에서는 자연수가 100까지 이므로 3중 for문을 사용하더라고 100 * 100 * 100 = 1000000 백만이므로 제한시간 1초안에 끝나는 연산이므로 3중 for문이 가능한것은 이해하고 있습니다. 하지만 for문을 3개씩이나 쓰는것이 마음에 걸려서 질문을 드립니다. 만약 여기서 시간복잡도를 줄이려면 어떤식으로 구현해야할까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
멘토링 문제 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서 푼 거랑 다르게 풀었습니다 우선 각각의 학생에 대해서 '자신보다 등수가 높은 적이 있는 학생'을 bool이라는 boolean형 배열에 저장했습니다. (true면 그 인덱스번호의 학생이 자신보다 등수가 높은 적이 있었던 것) 그럼 true가 아닌 인덱스는 모두 멘티가 될 수 있는 경우이기 때문에, 갯수만큼 answer에 더해서 출력하도록 했습니다. 이렇게 하면 강의 방식보다 for문 개수가 줄어드는데, 시간복잡도 같은 측면에서 봤을 때 어떤 방식이 더 빠른가요??? 이유도 궁금합니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
봉우리 문제 질문 드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문제에서 준 조건대로 가장자리에 0이 포함된 배열을 만들고 배열 싹다 검사했습니다. 이렇게 하면 강의에서 한 방식보다 많이 느린가요??
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
arr생성시 공간
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 코드 중에 class Main { static int[] unf; public static void main(String[] args) { .... unf = new int[n+1]; for(int i=1; i<=n;i++) unf[i] =i; .... } } 위 코드에서 unf = new int[n+1]; 이부분을 저는 unf = new int[n];으로 구현 해서 에러가 났습니다. (집합번호를 1~n까지 초기화하니까, for(int i=1; i<=n;i++) unf[i] =i; 이런 코드를 구현한 것은 이해했습니다. ) 만약 unf = new int[n+1];으로 공간을 할당한다면 입력은 예를들어 9를 했는데 공간은 10이 생겨버리는게 아닌가요? }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
배열을 인자로 넘기는 경우와 넘기지 않는 경우의 차이점에 대해서 궁금합니다.
DFS에 들어와서 궁금한 점이 생겼습니다. 재귀 과정에서 board와 같이 배열을 탐색하는 경우가 많은데요. 어떤 경우에는 인자로 배열을 넘기기도 하고 어떤 경우에는 static을 사용해서 인자로 넘기지 않는 경우가 있습니다. 어떠한 차이점이 있는지 알려주시면 감사하겠습니다. 그리고 강의 들으면서 알고리즘 문제 풀이에 대한 이해가 많이 높아졌습니다. 이전에는 그냥 꾸역꾸역 문제를 풀어서, 면접에서 제대로 대답을 못했는데 이제는 자신감이 많이 생겼습니다. 감사합니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
테스트케이스 2번
두번째 테스트 케이스에서 왜 답이 3번 학생인지 이해되지 않습니다!3번 학생은 같은 반 해본 적이 2회 뿐인데왜 3회 해본 4번 학생이 아닌 3번 학생이 답인가요? 5 9 8 7 6 5 : 1회 5 6 7 8 9 : 1회 1 2 3 7 8 : 2회 4 5 3 4 2 : 3회 6 2 8 4 2 : 3회
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Array 가 클래스인것같은데요. Array를 생성한곳이 없는것같은데
Array.sort 가바로되는것같은데 혹시 이유알수있을까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임 오류가 왜 나는지 궁금합니다.
강사님이랑 거의 똑같이 코드 작성한 것 같은데 채점사이트에서 계속 런타임 오류가 납니다. IDE에서는 잘 돌아가는데 말이죠 ㅠㅠ import java.util.*; public class Main { public static int solution2 (String s, String t){ Map<Character, Integer> amap = new HashMap<>(); // window Map<Character, Integer> bmap = new HashMap<>(); for(int i = 0 ; i < t.length(); i++){ bmap.put(t.charAt(i), bmap.getOrDefault(t.charAt(i), 0)+1); } int LEN = t.length()-1; for(int i = 0; i < LEN; i++){ amap.put(t.charAt(i), amap.getOrDefault(t.charAt(i), 0)+1); } int lt = 0, cnt = 0; for(int rt = LEN; rt < s.length(); rt++){ amap.put(s.charAt(rt), amap.getOrDefault(s.charAt(rt), 0)+1); // 판정 if(amap.equals(bmap)) cnt++; // 윈도우 밀기 amap.put(s.charAt(lt), amap.get(s.charAt(lt))-1); if(amap.get(s.charAt(lt)) == 0) amap.remove(s.charAt(lt)); lt++; } return cnt; } public static void main(String[] args){ Scanner sc = new Scanner(System.in); String s = sc.next(); String t = sc.next(); System.out.println(solution2(s, t)); } }
- 해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
예시로 채점 사이트에 자동입력된 소스코드도 런타임 에러가 발생 합니다.
10. 가장 짧은 문자거리 문제 채점 사이트가 이상합니다. 예시로 입력된 소스코드도 런타임에러가 떠서 문제를 풀 수가 없습니다. import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); int input1 = in.nextInt(); int input2 = in.nextInt(); System.out.println(input1 + input2); return ; } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
포인터 사용하는 이유가 궁금합니다.
안녕하세요 강사님! 강의 잘 듣고 있습니다~ 강의를 듣기 전 혼자 풀어본 것과 강사님 방법이 조금 달라 궁금한게 생겨 질문 드립니다. 저는 sliding window만 사용하여 문제를 해결했는데 강의에서는 포인터도 함께 사용하더라구요! 혹시 포인터를 함께 활용하는 게 더 좋은 이유가 있을까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Union메서드 반환타입
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 수업을 듣기전에 수도코드로 간단하게 작성해보았습니다. Union () 메서드를 작성할 때 반환타입을 int로 주고 return 값도 int로 적었는데 왜 This method must return a result of type int 에러가 발생하는지 모르겠습니다. 혹시 Union()는 항상 void만 리턴 하나요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
int j = 0
안녕하세요. 강의를 듣던 중 궁금한 점이 생겨 질문을 남깁니다. int j =0 을 for문 조건에 초기화 하지 않고 for문 밖에 초기화를 하면 안쪽 for문이 끝나고 다시 바깥쪽 for문을 돌 때에 마지막 j의 값이 그대로 넘어가게 되는 것 맞나요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요! 코드를 작성하였는데, 어떠한부분이 오답인지 알지 못하여 질의드립니다.
정답도 정상적으로 나오는데,, 어느부분이 틀렷는지 알수가없어요...
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
입력했을 시 오류 메세지가 나오지 않아 찾기 어렵습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, 채점 서비스가 지원 되지 않은 문제라서 확실히 틀린 부분을 찾기 어려운 것 같습니다. 무엇보다 입력을 했는데 아무런 응답이 없어서 고민 후 글 올리게 되었습니다 우선 제 코드는 선생님 코드와 다른 점들이 있습니다. 참고는 했지만 이해가 안 가는 부분은 넣지 않았습니다. 1. 오름차순 정렬 2. Main class 의 dis[v] = 0; 혹시 오름차순을 한 이유와 바로 위해 pQ.offer(new Edge(v, 0));으로 v의 값을 0으로 초기화 해주었는데(제가 이해한게 틀렸을 가능성이 높습니다만,,ㅎㅎ) 또 dis[v] = 0;을 해준 이유가 궁금합니다. 그리고 어느 부분이 틀렸는지 알고싶습니다. 현재는 저렇게 코드 작성후 입력을 하면 아무런 결과/오류메세지가 나오지 않는 상황입니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간복잡도 질문있습니다!
안녕하세요! 좋은 강의 만들어주셔서 감사합니다! 다름이 아니라 문제 풀이 중 시간 복잡도 관련하여 궁금한 사항이 있어 질문드립니다! 만약 문제에서 피자집이 200개 이고 m이 12라고 한다면 피자집 조합의 경우만 200C12 = 6107693672247476400 라는 수가 나오게 되서.. 위 케이스에 대해 설명해주신 dfs 방식으로는 제한 시간 1초안에 시간 초과가 날 것 같다는 생각이 들었습니다..! 혹시 맞다면 다른 풀이 방법이 있을까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
결과 값은 맞는데 채점시 오답이라고 나옵니다.
package matter2_6; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = sc.nextInt(); int num[] =new int[count]; for (int i = 0; i < count; i++) { num[i] = sc.nextInt(); } Main main = new Main(); main.solution(num); } public void solution(int [] num) { int arr[] = new int [num.length]; for (int i = 0; i < num.length; i++) { for (int j = 0; j <3; j++) { if(num[i] > 0) { arr[i] *= 10; arr[i] += num[i]%10; num[i] /= 10; } } if(!isPrime(arr[i])) arr[i] = 0; } for (int i = 0; i < arr.length; i++) { if(arr[i]!=0) System.out.print(arr[i]+" "); } } public boolean isPrime(int a) { if(a==1) return false; for(int i = 2;i<a;i++) { if(a%i==0) return false; } return true; } } 잘못 된 곳을 못찾겠습니다.