월 15,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
저는 이렇게 풀어봤는데 왜 정답이 아닌지 모르겠어요 ㅠㅠ
package main;import java.util.Scanner;public class Main { public String solution(String str) { String answer = "YES"; str = str.toUpperCase(); int lt = 0, rt = str.length() - 1; char[] ch = str.toCharArray(); while (lt < rt) { char tmp = ch[rt]; ch[rt] = ch[lt]; ch[lt] = tmp; lt++; rt--; } if (String.valueOf(ch) != str) { answer = "NO"; } return answer; } public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.next(); Main T = new Main(); System.out.println(T.solution(str)); }}
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
저는 이렇게 풀었는데요 ! 왜 앞에 null이 붙는지 모르겠습니다 ㅠㅠ
아 그리고 이렇게 풀면 효율성이 많이 떨어지는지도 궁금합니다 ! package algorithm;import java.util.*;public class Main { public String[] solution(int n, String[] arr) { String[] answer = new String[n]; for (int i = 0; i < n; i++) { for (int k = arr[i].length() - 1; k >= 0; k--) { answer[i] += arr[i].charAt(k); } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); String[] arr = new String[n]; for (int i = 0; i < n; i++) { arr[i] = sc.next(); }// T.solution(n, arr); for (String s : T.solution(n, arr)) { System.out.println(s); } }}
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
스캐너를 받지 않고
``` public class Main { public int solution(String str, char t) { int answer = 0; str = str.toUpperCase(); t = Character.toUpperCase(t); for (int i = 0; i < str.length(); i++) { if (str.charAt(i) == t) answer++; } return answer; } public static void main(String[] args) { Main T = new Main(); String str = "Computercooler"; char c = 'c'; System.out.println(T.solution(str, c)); } ``` 직접 문자열을 입력하면 컴파일 에러가 나는데 , 반드시 스캐너를 통해서 값을 받아야 하나요??
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
질문입니다..
안녕하세요 강사님 질문이있습니다. 1. 해당 강의 초반에서 시간이 초과될 수 있기 때문에 이중 for문을 사용하지 말라고 하셨는데 풀이에 이중for문이 사용되어 헷갈려서 질문드립니다,. 정확히 어떨 때, 어떤 형태의 이중for문을 사용하면 안되는건지 판단할 수 있는 방법이 있을까요? 지난번에 시간복잡도랑 연관지어 설명해주셨었는데 제가 코테 준비는 처음이라 시간복잡도가 뭔지 잘 몰라서.. 2. 그리고 혹시 이 강의에서는 알고리즘 기초 개념(시간복잡도, 자료구조, BFS 등등 들어본게 많아서요!)은 미리 숙지하고있어야 수강할 수 있나요? 따로 개념을 짚어주시지는 않고 수강생이 미리 알고있다는 전제하에 문제만 풀어주시는건지 궁금합니다
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
07-01부터 07-07문제가 안나타납니다.
안녕하세요, 강사님. 07-01문제를 풀어보려했는데 07-08을 제외한 7단원 파트 문제가 안보입니다. 문제를 확인하고 풀 수 있었으면 좋겠습니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
max 값을 0이 아닌 MIN_VALUE를 사용하신 이유가 있나요?
안녕하세요, 강의를 듣다 의문점이 생겨서 글을 남겨봅니다. 강사님께서 MIN_VALUE로 값을 선언 해주신 부분을 보고 의문점이 들었습니다. 학급 회장의 경우 투표를 통하기 때문에 0 이하의 값으로 떨어질 일이 없다는 생각이 들어서요 특별한 이유가 있거나 사용시 좋은 점 등을 설명해주시면 정말 감사합니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
답변 예시와는 다른 질문드립니다!
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(solution(n));}public static int solution(int n) { int answer = 0, sum = 0; int p1 = 1; for (int i = 1; i <= (n / 2 + 1); i++) { sum += i; while(sum > n) { sum -= p1++; } if (sum == n) answer++; } return answer;} 해당 방법으로 풀이시 다섯 개의 케이스 말고 추가 케이스에서 문제가 다른 답이 나올수도 있을까요 ...?
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
채점 사이트 로그인 후 리다이렉트 패스 수정 요청
안녕하세요. 저는 하루에 1~2 개씩 문제를 풀고 있습니다. 제가 겪고 있는 고충은 아래와 같습니다. 1. 상황 인프런 회원으로 로그인을 하면 강좌 2번 채점 사이트 연결 링크를 타고 들어가야만 정상 로그인이 되어서 채점을 할 수 있습니다. 2. 문제 하루가 지나 같은 채점 사이트에 접속하면 세션 만료로 자동 로그 아웃이 되는데 인프런 회원으로 로그인 하기 버튼으로 로그인을 하면 리다이렉트로 인프런 메인 페이지로 돌아갑니다. 그래서 다시 2번 강좌 채점 사이트 바로가기 링크를 클릭해야 하는데 이게 매우 번거롭습니다. 3. 해결방안 요청 채점 사이트에서 인프런으로 로그인하기 버튼을 누른 후 채점 사이트 메인으로 리다이렉트 경로 설정을 바꿔 주세요.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
5. 소수(에라토스테네스 체) 문제 질문 있습니다!
아래 코드가 혹시 왜 틀렸는지 알 수 있을까요? 우선 배열을 사용하지 않고 짜 보고 싶어서 이렇게 짰습니다 코드를 짠 의도는 2와 3으로 나누어지지 않는 것들이 소수이기 때문에 이 경우에 answer++를 해서 answer가 쌓이도록 했고, if(i == 2 || i == 3)은 1과 자기 자신만을 가지기 때문에 따로 예외를 둬 처리했습니다 답은 알맞게 나오는데 채점을 하면 오답이라고 떠서 코드에 문제가 있는 건지 아니면 제가 문제를 잘못 이해한 것인지 궁금해서 질문 올립니다 import java.util.*; public class Main { public int solution(int n) { int answer = 0; for(int i = 2; i < n+1; i++) { if (i == 2 || i == 3) { answer++; } else if(i % 2 != 0 && i % 3 != 0) { answer++; } } return answer; } public static void main(String[] args) { Main m = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.print(m.solution(n)); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8-1)합이 같은 부분집합
안녕하세요 강사님 ! DFS 함수를 void 반환으로 하지 않고 String 형으로 바꾼 뒤에 부분집합 합이 동일할 때 YES 를 return 하는 방법으로 코드를 작성했는데 답이 NO로 나옵니다. 분명 if((sum - tmp) == tmp) 문 안으로 들어오긴 하는데 왜 YES를 반환하지 못하는지 궁금합니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
버블정렬 소스코드 구현 질문
안녕하세요? 좋은 강의에 꾸준히 터득해가며 문제를 넘기고있습니다 ^^ 버블정렬 관련해서 질문드리고자합니다. 결론은 반복부에서 넘어갈때 저는 while문으로 사용하였는데 이렇게 구현해도 맞게 한건지 궁금하여 올려봅니다. 결과는 정답입니다 라고 되긴했지만... while문을 사용하여 더이상 앞뒤 체크에서 자리변화가 없다면 종료되게끔 하였는데 선생님 강의에서와의 차이점은 선생님께서는 자리수를 정해놓고 차츰 줄여나가면서 검사하였다면 저는 계속 하게끔 하였는데, 이렇게 버블정렬해도 되는것인지 궁금하여 질문올려봅니다.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요 n2 시간복잡도일 때 문제가 풀리는거 같아서 질문남깁니다.
아래와 같은 코드로 문제를 제출했는데 정답처리를 받았습니다. 해당 코드는 단순히 전부 비교하면서 진행하니까 n2 시간복잡도를 가질꺼라서 안되겠지? 했는데 통과를 해버렸습니다. break문 때문에 완전n2이 아닐수도 있지만 그래도 시간복잡도는 n2 이지 않나요?? 왜 통과과 된건지 알려주시면 감사하겠습니다. 아 그리고 문제는 씨름선수인데 문제 중간 바둑선수라고 문제설명이 되어있습니다. 해당 부분에서 문제 설명 수정이 필요하실 것 같습니다. import java.util.Scanner;public class Greedy_1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int result = N; Man[] mans = new Man[N]; for (int i = 0; i < N; i++) { int h = sc.nextInt(); int w = sc.nextInt(); mans[i] = new Man(h,w); } for (int i = 0; i < mans.length; i++) { for (int j = 0; j < mans.length; j++) { if (mans[i].height < mans[j].height && mans[i].weight < mans[j].weight) { result--; break; } } } System.out.println(result); } static class Man { int height; int weight; public Man(int height, int weight) { this.height = height; this.weight = weight; } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
테스트 케이스가 잘못되어있는것 같습니다.
코드는 동일하게 작성하였는데 정답과 오답을 왔다갔다해서 테스트케이스를 확인하게됬습니다. 작성한 코드는 아래와 같습니다 점검도 한번 부탁드립니다. public int solution(int[][] arr) { int num=0; int max=Integer.MIN_VALUE; // i = 학생별 검사 for(int i=0; i<arr.length; i++) { //학생의 겹침 횟수 int cnt = 0; //j = 학년 for(int j=0; j<arr[i].length; j++) { // k = 다른 학생과 비교 for(int k=0; k<arr.length; k++) { if(arr[i][j] == arr[k][j]) cnt++; } } if(max<cnt) { max = cnt; num = i+1; } } return num; }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이 로직은 안되나요?
어떤 부분에서 로직이 틀린 건지 잘 모르겠습니다. import java.util.ArrayList; import java.util.Scanner; public class Ch9_6 { public static ArrayList<ArrayList<Integer>> list; public static boolean flag = false; public static void solution(int start, int end) { if(start == end) flag = true; for(int friend : list.get(start)) { solution(friend, end); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); list = new ArrayList<>(); for(int i = 0; i <= n; i++) { list.add(new ArrayList<Integer>()); } for(int i = 0; i < m-1; i++) { int a = sc.nextInt(); int b = sc.nextInt(); list.get(a).add(b); } int start = sc.nextInt(); int end = sc.nextInt(); solution(start, end); if(flag) System.out.println("YES"); else System.out.println("NO"); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
7-1번 ~ 7-7번 문제가 안보입니다
안녕하세요 문제목록에서 7-1번 ~ 7-7번 문제가 안보입니다 - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
replaceAll 을 이용해서 문제를 풀어도 문제는 없나요 ?
(사진)
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요 9번 숫자만 추출문제 질문이 있습니다.
import java.util.Scanner; class Main { public int solution(String s) { int answer = 0; for(char x : s.toCharArray()){ //숫자이면 --> 문자 0이 48이고 문자 9가 57임. if(x >= 48 && x <= 57) answer += answer * 10 + (x-48); } 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)); } } 안녕하세요 강사님 수업 잘 듣고있습니다.^^ 위와 같이 9번 문제를 구현했으나 if문 안으로는 문자로 인식되어서 조건문 안에 들어오는데 출력되는 결과값이 문자인 숫자 아스키 코드 값이 아닌 숫자 자체 값이 나와버리는데 제가 어떤 실수를 한게 있는지 여쭤보고 싶습니다.!
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
코드 로직이 이상한가요?
시간 초과가 뜰 줄 알았는데 그냥 에러가 떠버리네요...? public class Ch9_1 { public static class Person { int height, weight; Person(int h, int w) { height = h; weight = w; } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); ArrayList<Person> arr = new ArrayList<>(); for(int i = 0; i < n; i++) { int h = sc.nextInt(); int w = sc.nextInt(); arr.add(new Person(h, w)); } for(int i = 0; i < arr.size(); i++) { Person a = arr.get(i); for(int j = 0; j < arr.size(); j++) { Person b = arr.get(j); if(a.height < b.height && a.weight < b.weight) { arr.remove(i); break; } } } System.out.println(arr.size()); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
시간 초과
코드는 강의에 올려주신 것과 비슷한데 시간 초과가 발생합니다... import java.util.*; public class Ch8_14 { public static int n,m, dis, answer = Integer.MAX_VALUE; public static int[][] board; public static ArrayList<Point> pizza = new ArrayList<>(); public static ArrayList<Point> house = new ArrayList<>(); public static int[] combi; public static class Point { int x, y; Point(int x, int y) { this.x = x; this.y = y; } } public static void DFS(int index, int start) { if(index == m) { int sum = 0; for(Point h : house) { dis=Integer.MAX_VALUE; for (int idx : combi) { dis = Math.min(dis, Math.abs(h.x - pizza.get(idx).x) + Math.abs(h.y - pizza.get(idx).y)); } sum+=dis; } answer = Math.min(answer, sum); } else { for(int i = start; i < pizza.size(); i++) { combi[index] = i; DFS(index+1, start+1); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); board = new int[n][n]; // 입력 받기 for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { int tmp = sc.nextInt(); if(tmp == 1) house.add(new Point(i,j)); if(tmp == 2) pizza.add(new Point(i,j)); } } combi = new int[m]; DFS(0,0); System.out.println(answer); } }
- 미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
HashMap을 사용한 방법 맞는지 질문드립니다.
안녕하세요. 강의 중 HashMap을 사용하면 O(n)으로 풀이 할 수 있다고 하셔서 풀어보았습니다. 이 방법이 O(n) 맞나요? private static char solution(int n, int[] nArr) { HashMap<Integer, Integer> map = new HashMap<>(); for (int x : nArr) { map.put(x, map.getOrDefault(x, 0) + 1); if (map.get(x) >= 2) { return 'D'; } } return 'U'; } 위 방법이 O(n)이 맞다면, test결과 속도가 아래와 같이 이중 for문으로 풀이한 것이 속도가 더 빠른데, 그래도 코딩테스트 풀이할때는 O(n) 방법으로 풀이하는 것이 올바른거겠죠?? 아니면 혹시 HashMap의 getOrDefault 내부에서 for문이 돌아가서 O(n)이 아닌건지.. 궁금합니다! private static char solution(int n, int[] nArr) { for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (nArr[i] == nArr[j]) { return 'D'; } } } return 'U'; }