월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임 에러가 뜨는 이유가 궁금합니다!
강의를 보기 전에 혼자 고민하고 작성했던 코드입니다. 출력은 잘 나오는데 채점 사이트에서 런타임 에러가 떴는데, 런타임 에러 어떤 상황에서 나오는지 궁금합니다!import java.util.*; public class Main { public int solution(int n, int[][] arr2) { int answer = 0; int sum = 0; // 각 행의 합 for (int i = 0; i < n; i++) { sum = 0; for (int j = 0; j < n; j++) { sum += arr2[i][j]; } answer = Math.max(sum, answer); } // 각 열의 합 for (int i = 0; i < n; i++) { sum = 0; for (int j = 0; j < n; j++) { sum += arr2[j][i]; } answer = Math.max(sum, answer); } // 두 대각선의 합 // 00 -> 11 -> 22 -> 33 -> 44 // 04 -> 13 -> 22 -> 31 -> 40 sum = 0; for (int i = 0; i < n; i++) { sum += arr2[i][i]; } answer = Math.max(sum, answer); sum = 0; for (int i = 0; i < n; i++) { sum += arr2[i][n-i-1]; } answer = Math.max(sum, answer); return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[][] arr = new int[5][5]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { arr[i][j] = kb.nextInt(); } } System.out.println(T.solution(n, arr)); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
숙제 코드 리뷰 부탁드립니다.
이전 문제와 비슷하게 graph 인접리스트를 이용하고, ch 배열을 사용해여 이미 방문한 곳을 체크했습니다.import java.util.*; import java.io.*; class Main { static int answer = 0; static ArrayList<ArrayList<Integer>> graph; static int n, m; static int[] dis, ch; public static void bfs(int v) { Queue<Integer> Q = new LinkedList<>(); Q.offer(v); int L = 0; while (!Q.isEmpty()) { int len = Q.size(); for (int i = 0; i < len; i++) { int cur = Q.poll(); dis[cur] = L; for (int nv : graph.get(cur)) { if (ch[nv] == 0) { ch[nv] = 1; Q.offer(nv); } } } L++; } } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; st = new StringTokenizer(br.readLine()); n = Integer.parseInt(st.nextToken()); m = Integer.parseInt(st.nextToken()); graph = new ArrayList<>(); for (int i = 0; i <= n; i++) { graph.add(new ArrayList<>()); } for (int i = 0; i < m; i++) { st = new StringTokenizer(br.readLine()); int a = Integer.parseInt(st.nextToken()); int b = Integer.parseInt(st.nextToken()); graph.get(a).add(b); } ch = new int[n + 1]; dis = new int[n + 1]; ch[1] = 1; bfs(1); for (int i = 2; i <= n; i++) { System.out.println(i + " : " + dis[i]); } } }
- 해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
[3-4]연속 부분수열 오답 질문드립니다..
[3-4] 연속 부분수열 이제 공부를 시작한지 얼마안된 코린이입니다.. 어디가 잘못되었는지 모르겠어요.. 케이스 3,5 에서 리턴값 1차이로 틀리네요.. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int lt = 0, rt = 0, sum = 0, answer = 0; int count = sc.nextInt(); int target = sc.nextInt(); int[] arr = new int[count]; for (int i = 0; i < count; i++) { arr[i] = sc.nextInt(); } while (rt < count) { if (sum == target) { answer++; sum -= arr[lt++]; } else if (sum < target) { sum += arr[rt++]; } else { sum -= arr[lt++]; } } while(lt < count) { sum -= arr[lt++]; if(sum == target) { answer++; } if(sum < target) break; } System.out.println(answer); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이거는 왜 오답인가요? 1-1;
import java.util.Scanner; public class Main1_1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next().toUpperCase(); char c = str.charAt(0); System.out.println(c); int answer = 0; for(int i=0; i <str.length(); i++) { if( str.charAt(i) == c) { answer++; } } System.out.println(answer); } }테스트는 잘되는데 왜오답인지모르겠습니다
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
토마토 문제 질문
강사님 안녕하세요! 토마토 문제 강의 듣다가 질문이 있어서 문의 드립니다.강의 내용 9:56 부분에서dis 부분에 (2,4) 부분이 3 이 아니라2가 되어야 하지 않나 싶어서 질문드립니다!이유는 level 1 - (2,5)에서 level 2가 될때 (2,4)가 2일 차에 토마토가 익어서 그렇게 될거 같은데,제가 이해를 잘못하고 있는 것인지 알 수 있을까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
미로탐색 질문있습니다
이런식으로 왔던길을 되돌아가는 것을 제외하지 않으면 경우의 수가 8가지 이상이 되는데 조건부족아닌가요??
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
연속수열에 음수가 포함되는 경우
연속부분수열에서 음수인 수도 포함되는 경우, lt와 rt 사이의 길이가 길어질수록 합이 반드시 커진다는 명제가 성립되지 않아서 two pointer를 사용하는 sliding window 해결방법을 사용할 수 없는 것 같습니다. 이런 경우에는 어떻게 접근해야할까요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
무엇이 오답인지 모르겠습니다...
예시 입력 이 외 다른 값으로 입력해도 올바른 값이 나오는데 오답이 나오는 이유가 무엇일까요...? public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int[][] arr = new int[n][5]; for (int i = 0; i < n; i++) { for (int t = 0; t < 5; t++) { arr[i][t] = in.nextInt(); } } int[] result = new int[n]; for (int i = 0; i < n; i++) { for (int t = 0; t < 5; t++) { for (int j = 0; j < n; j++) { if (i == j) continue; if (arr[i][t] == arr[j][t]) { result[i]++; break; } } } } int max_index = 0; for (int i = 0; i < result.length; i++) { if (result[i] > result[max_index]) { max_index = i; } } System.out.print(max_index + 1); } 예시 입력을 넣으면5 2 3 1 7 3 4 1 9 6 8 5 5 2 4 4 6 5 2 6 7 8 4 2 2 2 학생 순서대로 학년마다 같은 반 이였던 적이 있는 학생이면 +1을 해서 result 배열에 넣어주었습니다.[0, 1, 2, 3, 1] 마지막으로 result 배열 안에 가장 큰 수를 가진 인덱스에 +1을 해서 출력했습니다. 4
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제를 풀어보고 강의를 다보고나서 바로 백준으로 가도 될까요??
안녕하세요.강사님 덕분에 무사히 강의 완주를 할 수 있었고, 문제 유형에 따라 풀어보면서 알고리즘 개념을 익힌 것 같습니다. 다름이 아닌 앞으로의 공부 방향성에 대해 여쭤볼게 있습니다.이 강의를 완주하고 나서 바로 백준 사이트에서 문제를 풀지 아니면 이 강의에서 푼 문제들 중에 틀린 문제만 다시 풀어볼지 고민입니다.선택의 가이드를 주시면 감사하겠습니다.아래 사이트는 제가 문제를 풀면서 틀린 문제들을 정리한 개인 노트입니다.https://stirring-zone-39a.notion.site/000a85a88dc64def8241b7fa5baff59b
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
왜 틀렸는지 이유를 잘 모르겠습니다..
import java.util.Scanner; public class Main { public static void main(String[] args) { Main main = new Main(); Scanner sc = new Scanner(System.in); String s = sc.next(); String solution = main.solution(s); System.out.println(solution); } public String solution(String str) { String answer = ""; char[] chArr = str.toCharArray(); if (chArr.length % 2 == 1) { return answer = "NO"; } int lt = 0; int rt = chArr.length - 1; while (lt < rt) { char startWord = Character.toUpperCase(chArr[lt]); char lastWord = Character.toUpperCase(chArr[rt]); if (!(startWord == lastWord)) { return answer = "NO"; } lt++; rt--; } return answer = "YES"; } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임 에러 질문 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요,12번 테스트 2,3,4,5 번에서 런타임 에러가 나는데 테스트 케이스가 어떤 것인지 알려주실 수 있을까요...?그리고 아래와 같이 풀었봤는데무엇이 문제일까요? import java.util.ArrayList; import java.util.Scanner; public class Main { public String solution(int n, String str) { String answer = ""; str = str.replace("#", "1"); str = str.replace("*", "0"); ArrayList<String> arrStr = new ArrayList<String>(); for(int i=0; i<n; i++) { String tmp = str.substring(0, 7); arrStr.add(String.valueOf((char)Integer.parseInt(tmp, 2))); str = str.substring(7); } answer = String.join("", arrStr); return answer; } public static void main(String[] args) throws Exception { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); String str = kb.next(); System.out.println(T.solution(n, str)); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
1-5번 문제 질문 올립니다
안녕하세요. 문자 뒤집기 문제에서해당 내용과 같이 코드를 작성 했는데답은 똑같이 출력이 되는데 채점에서 오답인이유가 무엇일까요 ?import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); System.out.println(solution(s)); } //a#b!GE*T@S //S#T!EG*b@a public static String solution(String s){ char[] c = s.toCharArray(); for (int i=0; i < c.length / 2 ; i++){ if(Character.isAlphabetic(c[i]) && Character.isAlphabetic(c[c.length-i-1])){ char tmp = c[i]; c[i] = c[c.length-i -1]; c[c.length-i -1] = tmp; } } return String.valueOf(c); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
메모이제이션 리턴값 질문입니다.
DFS 함수에서 n이 2보다 클 경우 fibo[n]=DFS(n-2)+DFS(n-1) 이렇게 출력을 하고있는데 여기서 n이 1, 2 일 경우 fibo[n]=1; 으로 저장만 하고 있는데 어떻게 두 값이 더해져서 리턴을 하게 되는지 궁금합니다. fibo 배열에 저장이 될 때 자동으로 그 값이 반환되는 건가요??알려주심 감사하겠습니다.!
- 해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
최대매출 왜 오답일까요?
public class Main { public int solution(int input1, int input2, int[] arr){ int max = 0; for(int i=0; i<=input1-input2; i++){ max = Math.max(max,arr[i]+arr[i+1]+arr[i+2]); } return max; } public static void main(String[] args){ Scanner sc=new Scanner(System.in); int input1 = sc.nextInt(); int input2 = sc.nextInt(); int[] arr = new int[input1]; for(int i=0; i<input1; i++){ arr[i] = sc.nextInt(); } Main T = new Main(); System.out.println(T.solution(input1, input2, arr)); return ; } } 슬라이딩 윈도우로 풀기 전에 위와같이... 완전탐색(?)형식으로 풀었는데 오답인 이유는 뭔가요?!! 시간초과인가요...?? for문 하나니까 시간복잡도 N 아닌가요 ㅜㅜ
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시작시간을 기준으로 해도 답이 나오는데 괜찮나요?
전 문제와 비슷하게 시작시간을 내림차순으로 정렬하고,아래와 같이 로직을 짰는데 정답 처리가 되었습니다.제가 푼 방법이 문제를 이해한 것이 맞을까요?import java.util.*; import java.io.*; class Conf implements Comparable<Conf> { int st; int et; public Conf(int st, int et) { this.st = st; this.et = et; } @Override public int compareTo(Conf o) { return o.st - this.st; } } class Main { public static int solution(int n, ArrayList<Conf> list) { int answer = 0; int min = Integer.MAX_VALUE; //st Collections.sort(list); for (Conf conf : list) { if (conf.et <= min) { min = conf.st; answer++; } } return answer; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer stz = null; int n = Integer.parseInt(br.readLine()); ArrayList<Conf> list = new ArrayList<>(); for (int i = 0; i < n; i++) { stz = new StringTokenizer(br.readLine()); int st = Integer.parseInt(stz.nextToken()); int et = Integer.parseInt(stz.nextToken()); list.add(new Conf(st, et)); } System.out.println(solution(n, list)); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
어디가 다른 부분인지 모르겠습니다.
import java.util.Arrays; import java.util.Scanner; public class Main { static int n; static int f; static int[] b; static int[] p; static int[] ch; static boolean find = false; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); n = scanner.nextInt(); f = scanner.nextInt(); b = new int[n]; p = new int[n]; ch = new int[n + 1]; for (int i = 0; i < n; i++) { b[i] = memoizationFactorial(n - 1, i); } solution(0, 0); } public static void solution(int level, int sum) { if (find) { return; } if (level == n) { if (sum == f) { for (int i : p) { System.out.print(i + " "); } } find = true; } else { for (int i = 1; i <= n; i++) { if (ch[i] == 0) { ch[i] = 1; p[level] = i; solution(level + 1, sum + (p[level] * b[level])); ch[i] = 0; } } } } static int[][] memorize = new int[35][35]; private static int memoizationFactorial(int n, int c) { if (memorize[n][c] > 0) { return memorize[n][c]; } if (n == c || c == 0) { return 1; } else { return memorize[n][c] = memoizationFactorial(n - 1, c) + memoizationFactorial(n - 1, c - 1); } } }제가 푼 방식으로는 안풀려서 선생님 코드를 그대로 썼는데 어디가 누락됬는지 모르겠습니다. ㅠㅠ
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
k번째 큰 수 문제에서 부분 수열의 합 처럼 풀어도 되나요?
안녕하세요!저는 이 문제에서 부분 수열의 합을 떠올려서 풀었는데요!이렇게 풀면 3중 for문의 비해 효율성이 떨어지나요?이렇게 풀어도 괜찮은지 질문 남김니다.package algorithmStudy; import java.util.*; public class Problem4_5 { static int n; static int k; static int[] arr; static Set<Integer> answerSet; public static void main(String[] args) { Scanner scan = new Scanner(System.in); n= scan.nextInt(); k= scan.nextInt(); arr= new int[n]; for(int i=0;i<n;i++){ arr[i] = scan.nextInt(); } solution(n,k,arr); } private static void solution(int n, int k, int[] arr) { answerSet = new HashSet<>(); DFS(0,0, 0); ArrayList<Integer>answer = new ArrayList<>(answerSet); // System.out.println(answer); if(answer.size()>k) { Collections.sort(answer,Comparator.reverseOrder()); System.out.println(answer.get(k-1)); }else System.out.println(-1); } private static void DFS(int i, int j, int sum) { if(j==3) { answerSet.add(sum); return; } if(i == n){ return; } DFS(i+1, j+1, sum+arr[i]); DFS(i+1, j, sum); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
6-3. 삽입 정렬
public int[] solution(int[] arr) { for (int i = 1; i < arr.length; i++) { int tmp = arr[i], j; for (j = i - 1; j >= 0; j--) { if(arr[j] > tmp) { arr[j+1] = arr[j]; } else { break; } } arr[j+1] = tmp; } return arr; }안녕하세요 선생님 위 반복문 if절에서 arr[j+1]=arr[j]대신 arr[i] = arr[j]로 주면 안 되는 이유가 뭔지 알 수 있을까요?혼자서 이해해보려다 살짝 어려워서 질문드려요ㅠㅠ
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
미로탐색 dx dy 질문입니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.dx dy가 -1 0 1 0 정해졌는데 이 설명이 9시 3시 6시 그러시는데.... 이해가 잘 안됩니다dx dy기준 -1,0이 12시라고 그러시는데x좌표가 -1 y좌표가 0이면 9시 아닌가요??어떤 방향인지 이해가 안됩니다
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
DFS바둑이
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.바둑이 승차 문제 질문있습니다DFS함수 내 else구문에서DFS(L+1, sum, arr); 의 역할과 arr은 무엇인가요?sum에 arr[L] 바둑이 더하는거까지 이해했는데마지막 3번쨰 요소 arr이 뭔지 모르겠습니다