묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드에 무슨 문제가 있는지 궁금합니다.
다른 케이스는 다 통과를 했는데 유일하게6 060 60 90 60 60 60인 경우에 답을 5가 아닌 6으로 나오게 하는데 왜 그런지 궁금합니다..
-
미해결코딩테스트 [ ALL IN ONE ]
그래프 암시적 그래프 질문입니다!
너비우선 탐색부분 강의 듣는중입니다! 이전 강의에서 암시적 그래프 최단거리 찾기 등의 그래프를 구현할 때는 [1,1,0,1,1] 이런식으로 구현하라고 하셨는데, 저런 문제도 지금 bfs강의에서 외우라고 하신 템플릿 대로 외워서 조금 응용해서 풀면 되는건가요??? 격자판 문제가 조금 어려워서 질문드립니다!격자판은 템플릿이 따로 있나..해서요!
-
미해결더 개발자, 인터뷰 가이드
미션 관련 내용 질문 있습니다..!
현재 인프런에서 기능이 삭제되어 다들 볼 수 없는 상황인데, 혹시 이 미션이 수업 자료로 주신 <학습할 것> 이 부분을 공부하라고 하는 내용일까요?궁금하네요 🥸
-
미해결더 개발자, 인터뷰 가이드
미션 수행 방법 질문드립니다.
아랫글을 보니 깃발기능이 없어져서 미션 수행을 위한 공지용 강의를 올려주신다고 하셨는데 강의가 없는 것 같습니다. 현재 상태에서 미션 수행할 수 있는 방법이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A 맞왜틀
안녕하세요. 선생님 ㅎㅎ 수업 잘 듣고 있습니다.수업에서 알려주신 visited 배열의 값들을 증가시키면서 depth를 세는 방법 말고, 구조체를 정의해서 문제를 풀어봤는데요?이게 어떤 방법은 틀리고 어떤 방법은 맞아서.. 어디서 차이가 나는지 궁금해서 질문드립니다.<맞은 코드>http://boj.kr/646d439f862e419ab3a865fdd7b1551b일단 큐에 현재 노드에서 갈 수 있는 노드(4방향)를 모두 넣고, 이후에 조건으로 노드를 선별하고, 혹시나 해서 아래와 같은 탈출 조건을 추가했습니다. if (row == m - 1 && col == n - 1) { res = depth; break; }<틀린 코드>http://boj.kr/516fe108a71c492e8c1967455f7222a1이번에는 큐에 넣기 전 예상되는 노드를 조건문을 통해서 선별하고 큐에 넣습니다.제 생각에는 이 코드가 큐에 들어가는 노드의 개수가 적어서 속도가 빠를 것 같은데, 메모리 초과가 나오더라구요;; <수정 코드>http://boj.kr/f72b373b45464778b8313fec9713ba18수정을 해봤는데 이번에는 틀린 코드랑 나머지는 똑같은데 반복문 안에서 큐에 넣자마자 바로 방문처리를 해주는 것입니다.for (int i = 0; i < 4; i++) { int nr = row + dr[i]; int nc = col + dc[i]; if (nr < 0 || nr >= m || nc < 0 || nc >= n) { continue; } if (puzzle[nc][nr] == 0) { continue; } if (visited[nc][nr]) { continue; } q.push({nr, nc, depth + 1}); visited[nc][nr] = true; } 이렇게 수정하니까 또 맞더라구요..<수정 코드>가 <틀린 코드>보다 메모리를 덜 차지하는 것은 알겠는데, <맞은 코드>가 <틀린 코드>보다 메모리를 덜 차지하는 잘 모르겠어서 질문드립니다.질문이 길어서 sorry...
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
이 코드는 어떤 부분이 문제인지 궁금합니다.
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); Main main = new Main(); for (int i = 0; i < n; i++) { System.out.print(main.solution(i) + " "); } } private int solution(int i) { if (i <= 1) { return 1; } return solution(i - 1) + solution(i - 2); } }
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임에러 질문입니다
import java.util.*; class Main { public String solution(String need, String plan){ String answer = "YES"; Queue<Character> q = new LinkedList<>(); for(char x: need.toCharArray()){ q.offer(x); // 필수과목을 q에 넣어줌 } for(int i = 0; i<plan.length(); i++){ if(!q.isEmpty() && q.peek() == plan.charAt(i)){ //교육과정 첫 번째 과목 == 현수의과목 q.poll(); } } if(!q.isEmpty()){ answer ="NO"; } return answer; } public static void main(String[] args){ Main T = new Main(); Scanner kb = new Scanner(System.in); String a=kb.next(); String b=kb.next(); System.out.println(T.solution(a, b)); } }안녕하세요! 항상 양질의 강의 잘 듣고 있습니다!처음에 if(!q.isEmpty() && q.peek() == plan.charAt(i)) 부분에서 if(q.peek() == plan.charAt(i)) 로 조건문을 짰는데, 런타임 에러가 나서 !q.isEmpty() 를 붙였더니 정상적으로 잘 돌아가게 되었습니다. 웹서핑을 하다보니 큐에 자료가 없을 경우 q.peek()를 할 경우 exception이 나 런타임 에러가 난다고 하는 데 맞을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
어떤 예외가 있는지 잘 모르겠네요
안녕하세요 예제를 입력했을때는 잘 출력이 되는데제출을 하면 틀렸다고 뜨네요 어떤 예외가 있을까요?http://boj.kr/c2fcd5fb097e4953a6b6c06f900cb025감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 질문
http://boj.kr/8688fcc2c590479b9ea68877d8ea7530선생님 저는 코드에 ? 있는 곳에 -1이 왜 있는지 이유를 모르겠습니다. 그리고 저기 있는 -1을 없애고 TC를 돌리면 세그멘테이션 폴트가 나오는데 그건 왜 그런건가요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-G 결과가 잘 출력되는데 틀렸다고 결과가 나옵니다
http://boj.kr/116102baf98342ddbbb0c1926c191911안녕하세요. 문제 보고 코드를 작성하였고, 실행 시켰을때 결과도 문제에서 요구하는대로 잘 출력되는데 백준에서 채점 결과는 왜 틀렸다고 뜨는지 잘 모르겠습니다. 혹시 코드에서 잘못된 부분이 있는지 한번 봐주실 수 있나요?감사합니다.
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
5개의 데이터 중 3개가 이미 선택이 완료된 경우 점화식에 대해 질문드립니다.
선생님 안녕하세요좋은 강의를 만들어주신 덕분에 잘 보고 있습니다.조합으로 점화식을 도출해내신 것을 보고 궁금한 점이 생겨서 가르쳐주시면 감사하겠습니다. 강의 12분 540초에서5C3 = 4C2+4C3 점화식을 도출해내신 것을 보고제가 제대로 이해했는지 확인하기 위해 다른 시도를 해봤습니다. 위의 점화식은 5개의 데이터 중 4개를 이미 선택이 완료된 데이터로 가정했을 때 도출이 되는 식입니다. 그래서 저는 5개의 데이터 중 3개를 이미 선택이 완료된 데이터로 가정했을 때로 점화식을 도출해봤습니다.그래서D[5][3] = D[3][3] + (D[3][2] * 2) +D[3][1]라고 도출해봤는데, 혹시 제가 제대로 이해했는지 봐주시면 감사하겠습니다.
-
미해결자바 코딩테스트 - it 대기업 유제
교육과정 질문드립니다.
answer에 답을 받으면서 출력하면 정답이 맞게 나오는데, 답을 받기만 하면 이상하게 나오네요뭐가 다른거죠???import java.util.*; import java.io.*; class Main { public static ArrayList<Integer>[] graph; public static int[] ind; public String[] solution(String[] subjects, String[] course){ String[] answer = {}; HashMap<String, Integer> map = new HashMap<>(); for(int i=0; i<subjects.length; i++) { map.put(subjects[i], i); } int n=subjects.length; ind = new int[n]; graph = new ArrayList[n]; for(int i=0; i<n;i++) graph[i] = new ArrayList<>(); for(int i=0; i<n; i++) { String[] list = course[i].split(" "); int a = map.get(list[0]); //사후 과목의 밸류값 받기 int b = map.get(list[1]); //사전 과목의 밸류값 받기 graph[b].add(a); ind[a]++; } Deque<Integer> q = new LinkedList<>(); for(int i=0; i<n; i++) { if(ind[i]==0) q.offer(i); } ArrayList<Integer> list = new ArrayList<>(); while(!q.isEmpty()) { int now = q.poll(); list.add(now); for(int next : graph[now]) { ind[next]--; if(ind[next]==0) q.offer(next); } } answer = new String[list.size()]; for(int i=0; i<list.size();i++) { answer[i] = subjects[list.get(i)]; System.out.print(answer[i]+ " "); } return answer; } public static void main(String[] args){ Main T = new Main(); System.out.println(T.solution(new String[]{"english", "math", "physics", "art", "music"}, new String[]{"art math", "physics art", "art music", "physics math", "english physics"})); //System.out.println(T.solution(new String[]{"art", "economics", "history", "chemistry"}, new String[]{"chemistry history", "economics history", "art economics"})[0]); //System.out.println(T.solution(new String[]{"math", "science", "music", "biology"}, new String[]{"science music", "math music", "math science", "biology math"})); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
출력 부분 질문
안녕하세요, 큰돌님!이번 문제를 풀 때, 저는 출력을cout.precision(4) cout << ret;이렇게 cout.precision()을 사용해서 제출을 했더니 틀렸다고 나오고printf("%0.3lf", ret); printf를 사용했을 때는 정답이라고 나와서 질문드립니다.입력을 cin으로 받았기 때문에 cout으로 출력을 하고 싶었는데두개의 차이가 무엇인지 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
궁금한 점이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 왜 moves 탐색시 for...of가 아니라 forEach를 쓰시는건가요?? for...of도 사용할 수 있지 않나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다!
안녕하세요 큰돌님https://www.acmicpc.net/submit/5430/62168272 위 코드가 시간 초과가 납니다.다른 질문글을 봤을때, 문자열을 split에서 최악의 경우 시간 복잡도가 n^2가 된다고 하였는데 어떤 경우에서 시간 복잡도가 n^2이 되는지 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰 부탁드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. function solution() { let answer; let calStack = []; for(let i of cal) { if(isNaN(i)) { let num1 = calStack.pop(); let num2 = calStack.pop(); let val = 0; switch(i) { case '+': val = num1 + num2; break; case '-': val = num2 - num1; break; case '*': val = num1 * num2; break; case '/': val = num2 / num1; break; } calStack.push(val); } else calStack.push(Number(i)); // i는 문자이기 때문에 숫자로 바꾸어 stack에 push 해야함 } answer = calStack[0]; return answer; } let cal = "352+*9-"; console.log(solution()); switch 문을 이용해서 문제를 풀었는데 괜찮은 코드인가요? 효율성면에서 if문이 switch문보다 좋은지도 궁금합니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
[Min Cost Climbing Stairs] DP 문제 전반부 부분 수업자료 문의
앗 강사님 Min Cost Climbing Stairs 이 부분. 문제를 설명해주시는 부분과 leetcode 링크 주소가 일치하지 않는 것 같습니다! leetcode에서는 다른 문제가 나옵니다ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-p14502 질문입니다
안녕하세요 선생님벽을 3개를 세우라고 해서 조합을 먼저 떠올렸고 영역을 구해야 한다는 부분에서 dfs를 떠올렸습니다그래서 조합과 dfs를 사용해 벽을 3개 세울때마다 dfs 및 visited배열을 매번 초기화 해주고 2차원 배열 arr을 돌면서 2(바이러스)가 나올때마다 동서남북으로 0또는 2인 곳으로 탐색해가며 영역의 크기를 구하게 해주었습니다. 예제는 분명히 다 맞는데 틀리는 이유가 뭘까요? 0또는 2로 한게 잘못된 걸까요?http://boj.kr/5d0f072fce1a471fb02deec85b4d906d
-
미해결Do it! 알고리즘 코딩테스트 with JAVA
7강 1940 런타임 에러
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tk = new StringTokenizer(br.readLine()); int N = Integer.parseInt(tk.nextToken()); int M = Integer.parseInt(tk.nextToken()); int[] nums = new int[N + 1]; for (int i = 1; i < N + 1; i++) nums[i] = Integer.parseInt(tk.nextToken()); Arrays.sort(nums); int start = 1, end = N, answer = 0; while (start != end) { int sum = nums[start] + nums[end]; if (sum < M) start++; else if (sum > M) end--; else { answer++; start++; end--; } if (start > end) break; } System.out.println(answer); } }안녕하세요 ~항상 좋은 강의를 만드시기 위해 노력해주셔서 감사합니다!강사님의 강의를 참고해 위 코드로 재출을 했는데 인텔리제이에서는 정상적으로 실행되지만,백준에 재출했을 때 런타임 오류가 발생하는 이유를 모르겠어서 질문드립니다 ㅠㅠ오류 코드는 아래와 같습니다.Error: Main method not found in class Main, please define the main method as: public static void main(String[] args)제대로 main 객체와 메서드가 있는데 왜 인식을 못하는지 모르겠네요 ㅠㅠ감사합니다 :)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문있습니다.
처음에 문제를 풀고 문제가 틀렸다고 나와서 강의까지 다봤습니다.우선순위 큐를 사용하지 않아도 풀 수 있을거 같다고 생각했고 실제로 예제도 통과 했고 다른 분이 반례가 있다고 올리셨던 것도 통과 했는데 어느 부분이 잘못되었는지 알고싶습니다.http://boj.kr/4f9206a6cf05456a8fa340a8e2fad5c4코드공유드립니다.