묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결더 개발자, 인터뷰 가이드
이력서 미션 보냈습니다.
헉 이력서 미션 후 해당 영상을 보았네요 ,,,이력서 사진부터 주소까지 적어 보냈어요..하하핫죄송합니다,,ㅠㅠ
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8. 응급실 문제에서 큐에 넣어준 임시변수를 null 값을 새로 할당할 필요가 없지 않을까요?
while문 안의 for문 안에서 if문에 큐에 넣어준 변수 temp에 null을 할당하지 않아도 로직상으로 문제가 안된다고 생각하는데, 그렇게 생각해도 될까요? import java.util.*;import java.io.*;class Person {int id;int priority; // 위험도public Person(int id, int priority) {this.id = id;this.priority = priority;}}public class Main {public int solution(int n, int m, int[] arr) {int answer = 0;Queue<Person> q = new LinkedList<>();for (int i = 0; i < n; i++) {q.offer(new Person(i, arr[i]));}while (!q.isEmpty()) {Person temp = q.poll();for (Person person : q) {if (person.priority > temp.priority) {q.offer(temp);// temp = null;break;}}if (temp != null) {answer++;if (temp.id == m) {return answer;}}}return answer;}public static void main(String[] args) throws IOException {Main main = new Main();BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int n = Integer.parseInt(st.nextToken());int m = Integer.parseInt(st.nextToken());int[] arr = new int[n];st = new StringTokenizer(br.readLine());for (int i = 0; i < n; i++) {arr[i] = Integer.parseInt(st.nextToken());}System.out.println(main.solution(n, m, arr));}}
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
완전탐색(For 반복문) 14분
for x in range(-10000, 10001): for y in range(-10000, 10001): if A * x + B * y == C: if D * x + E * y == F: print(x, y) break range가 빠진거죠?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게 해도 괜찮은건가요?
def DFS(L,a,b,c): global res if L==n: if a==b or a==c or b==c: return v1=max(a,b,c) v2=min(a,b,c) res = min(res, v1-v2) return DFS(L+1,a+p[L],b,c) DFS(L+1,a,b+p[L],c) DFS(L+1,a,b,c+p[L]) n=int(input()) p=[ int(input()) for _ in range(n) ] res=2147000000 DFS(0,0,0,0) print(res)강사님과 동일한 접근 방법으로 상태트리를 그려보고 코드를 작성했는데, 이 방법도 강사님 코드와 시간 효율면에서 동일한 성능을 갖나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-E
안녕하세요 큰돌님! 문제를 푸는 도중 답이 안나와서 해결 영상을 보던중 강사님과 코드가 비슷해 달가와하고 있던 수강생입니다!강사님께서는제가 1. 같은 수 인지 확인 주석해놓은 부분에서 go 함수 4개를 호출하시던데 이중 for문 안에서 하는 이유가 있을 까요? 최초에 go(0, 0, n)에서 시작하는 순간부터 한번이라도 틀린게 나오면 go 함수 4개를 호출하는 것이 맞다고 생각해서 저는 저렇게 작성하였습니다.+ 제 코드가 오류가 나는데 이유를 잘 모르겠습니다...구글링을 해봐도 안나와서 도움 요청드립니다..!강의 영상 항상 감사합니다 :)http://boj.kr/febf3b03187c4c019488df967a6901b4
-
해결됨[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
촌수계산질문
안녕하세요! 선생님이 알리켜주신대로 한번 다시 하다가 저는 bfs 메소드에서 ++count로 했는데 count+1과 무슨 차이가 있을까요?? 백준에서 돌려봤더니 틀렸다고 떠요! private static void dfs(int start, int count) { visited[start]=true; if(start==end){ answer=count; return; } for(int i=1;i<=N;i++){ if(visited[i]==false&&graph[start][i]){ dfs(i,++count); } } }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
런타임에러(ArrayIndexOutOfBound) 가 나는 이유
안녕하세요 강사님 강사님 강의 문제에 대한 질문이 아니라 답변하기 힘드시면 괜찮습니다.강사님 강의를 다 듣고 추천해주신 백준 문제들을 풀다가 질문이 있어 질문드립니다. 백준 9019 문제에 관한 질문인데 백준에서 채점 받을때 ArrayIndexOutOfBound 가 나는 이유를 제 코드를 살펴봐도 어디서 문제이지 찾을 수 없어 질문드립니다. 9019 의 문제의 솔루션을 구글링 해봐도 다 똑같은 코드로만 작성을 해놔서 제가 작성한 코드가 어디가 문제였는지 알고 싶어 질문드립니다.package Baekjoon; import java.util.*; class DSLR { public int result; public String command; DSLR(int result, String command) { this.result = result; this.command = command; } } public class _9019 { static boolean[] ch = new boolean[10000]; static ArrayList<String> list = new ArrayList<>(); public void BFS(int input, int output) { Arrays.fill(ch, false); Queue<DSLR> q = new LinkedList<>(); q.offer(new DSLR(input, "")); while(!q.isEmpty()) { DSLR tmp = q.poll(); if (tmp.result == output) { list.add(tmp.command); break; } for (int i = 0; i < 4; i++) { if(i == 0) { int next_result = (tmp.result * 2) % 10000; if (!ch[next_result]) { String next_command = tmp.command + 'D'; ch[next_result] = true; q.offer(new DSLR(next_result, next_command)); } } if (i == 1) { int next_result = tmp.result - 1; if (next_result == 0) next_result = 9999; if (!ch[next_result]) { String next_command = tmp.command + 'S'; ch[next_result] = true; q.offer(new DSLR(next_result, next_command)); } } if (i == 2) { int next_result = (tmp.result % 1000) * 10 + (tmp.result / 1000); if (!ch[next_result]) { String next_command = tmp.command + 'L'; ch[next_result] = true; q.offer(new DSLR(next_result, next_command)); } } if (i == 3) { int next_result = (tmp.result % 10) * 1000 + tmp.result / 10; if (!ch[next_result]) { String next_command = tmp.command + 'R'; ch[next_result] = true; q.offer(new DSLR(next_result, next_command)); } } } } } public static void main(String[] args) { _9019 T = new _9019(); Scanner sc = new Scanner(System.in); int test = sc.nextInt(); for (int i = 0; i < test; i++) { int a = sc.nextInt(); int b = sc.nextInt(); ch[a] = true; T.BFS(a, b); } for(String x : list) { System.out.println(x); } } }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-O 질문입니다.
안녕하세요 큰돌님. 강의를 듣고 있는 수강생입니다.현재 큰돌님 코드에서 while(scanf("%d", &n) != EOF)라는 코드를 작성하셨는데 EOF를 생략하고 cin >> n의 형식으로 작성을 하니 틀렸다고 뜹니다. 이에 EOF를 왜 사용하지 않으면 틀리는지 궁급합니다. 다음은 코드입니다.http://boj.kr/6b818f7ca5394a209864fb4063aa8811
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-1 질문입니다.
큰돌님이 올려주신 코드가 "all 이거나 empty일때는 n 입력을 받지 말아야합니다."이거를 충족 못하는거 아닌가요? 계속 문자열과 정수를 입력 받는데..그리고 답안 코드에는 scanf(" %s~~) 이렇게 띄어쓰기가 들어갓는데 이 부분도 쓰고 안쓰고가 매우 중요하다고 알고있는데.. 3. 실제로 돌렷을때는 정상 답안이 나오니 아마 위에 두개의 제 생각이 다 틀리겠죠..?ㅎㅎ 설명해주시면 감사하겠습니다..ㅠㅠ 항상 감사드립니다.
-
미해결자바 코딩테스트 - it 대기업 유제
다이나믹 프로그래밍 알고리즘에 대해 질문드립니다.
문제를 보고 이 문제가 dp문제다라는 것을 어떻게 알고 진행하는지 궁금합니다. 다양한 알고리즘이 존재하는데, 따로 문제에서 dp문제라는 주목할만한 힌트가 있나요???
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
IDE 질문입니다
IDE 를 DEV C++ 사용 하는대 Visual studio 로 해도 상관이 없나요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
89번 토마토 문제 질문있습니다.
안녕하세요 선생님 코드 32번째 줄 부터 if (map[xx][yy] == 0) { if (xx <= n && xx >= 1 && yy <= m && yy >= 1)}이렇게 구현하신지 이유를 알고 싶습니다. 왜냐하면 if (map[xx][yy] == 0 && xx <= n && xx >= 1 && yy <= m && yy >= 1)} 도 맞지 않나 생각이 들어서요 혹시 차이점이 있다면 답변 부탁드립니다.감사합니다.
-
미해결자바 코딩테스트 - it 대기업 유제
바둑대회 질문드립니다.
import java.util.*; import javax.security.auth.Subject; import java.awt.List; import java.io.*; class Main { public static boolean[] visit; public static int len,answer=Integer.MAX_VALUE; public int solution(int[][] cans){ len=cans.length; visit =new boolean[len]; dfs(0,0,cans); return answer; } public static void dfs(int L,int s,int[][] cans) { if(L==len/2) { ArrayList<Integer> a = new ArrayList<>(); ArrayList<Integer> b = new ArrayList<>(); for(int i=0; i<len; i++) { if(visit[i]) a.add(i); else b.add(i); } int sum1=0,sum2=0; for(int i=0; i<L; i++) { sum1+=cans[a.get(i)][0]; sum2+=cans[b.get(i)][1]; } answer =Math.min(answer, Math.abs(sum1-sum2)); } else { for(int i=s; i<len; i++) { visit[i] = true; dfs(L+1, i+1,cans); visit[i] = false; } } } public static void main(String[] args){ Main T = new Main(); System.out.println(T.solution(new int[][]{{87, 84}, {66, 78}, {94, 94}, {93, 87}, {72, 92}, {78, 63}})); System.out.println(T.solution(new int[][]{{10, 20}, {15, 25}, {35, 23}, {55, 20}})); System.out.println(T.solution(new int[][]{{11, 27}, {16, 21}, {35, 21}, {52, 21}, {25, 33},{25, 32}, {37, 59}, {33, 47}})); } }이렇게 작성했는데 마지막 테스트 케이스가 1이 아닌 0이 나옵니다. 어디가 잘못된건지 모르겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
[2_R맞왜틀] ret을 전역변수로 선언하면 왜 틀릴까요?
http://boj.kr/db85dc94cd0c466aafbedb24affa6259 안녕하세요 선생님 도움 많이 받고 있습니다 항상 감사드려요. 다시 복습하면서 문제를 풀어보는데 ret을 전역변수로 선언하고 dfs함수를 ret을 계산하는 용도로만 사용하면 틀리더라구요 왜 그런지 잘 모르겠어요. 한번 봐주시면 좋겠습니다. 감사합니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
입출력 싱크 질문
안녕하세요! 알고리즘 교안 169P에서 입출력 싱크에 대한 설명을 읽고, 궁금증이 생겨서 질문 남깁니다!"cin과 cout은 c 라이브러리인 stdio의 버퍼와 동기화하느라 시간을 소비하기 때문이죠"라는 설명이 cin과 cout이 C에서 사용하는 스트림의 버퍼를 사용한다는 뜻으로 이해하면 되나요?https://modoocode.com/281이 게시글에서는 동기화가 될 경우, C++ 스트림의 버퍼를 사용하지 않고, C 스트림의 버퍼를 사용한다고 나와있길래 그렇게 이해하였습니다.동기화라는 것이 특정 자원에 동시에 접근함으로써 데이터가 불일치하게 되는 문제를 막기 위해 프로세스의 순서를 정하는 것으로 알고 있는데, 이것을 교안에서 언급한 동기화 개념과 어떻게 연결지어야 할지 잘 모르겠습니다!ㅠㅠ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
승철이의 문단속 코드 질문있습니다
안녕하십니까 큰돌님소수 판별하는 check 함수의 for 문에서for (int i = 2; i * i <= n; i++) 조건식 i * i <= n 의 의미를 잘 모르겠습니다
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
스택이 멀티쓰레드에 안전하지 않은걸까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요. 강의 잘 듣고 있습니다.문제와 관련 없긴 한데, 궁금해서 질문 드립니다.동일한 코드의 메서드 solution1, solution2를 main 메서드에서 순차적으로 실행했을 때 결과값이 다른데, 스택이 멀티쓰레드에 안전하지 않아서 발생하는 문제일까요?하나씩 실행하면 올바른 정답이 나옵니다. package 스택; import java.util.Scanner; import java.util.Stack; public class _03_크레인인형뽑기 { public int solution1(int[][] board, int[] moves) { int answer = 0; Stack<Integer> stack = new Stack<>(); for (int pos : moves) { for (int i = 0; i < board.length; i++) { if (board[i][pos - 1] != 0) { int tmp = board[i][pos - 1]; board[i][pos - 1] = 0; if (!stack.isEmpty() && (stack.peek() == tmp)) { stack.pop(); answer += 2; } else { stack.push(tmp); } break; } } } return answer; } public int solution2(int[][] board, int[] moves) { int answer = 0; Stack<Integer> stack = new Stack<>(); // 1. 크레인 위치에 해당하는 인형을 찾는다. (밑으로 행을 이동하면서 인형 찾기) for (int pos : moves) { for (int i = 0; i < board.length; i++) { // 2. 비어 있지 않은 인형 캐치 (배열의 index는 0부터 시작하기 때문에 -1) if (board[i][pos - 1] != 0) { // 인형 꺼냄 int tmp = board[i][pos - 1]; // board의 인형은 비어줌 board[i][pos - 1] = 0; // 바구니에 겹치는게 있으면 모두 꺼냄 if (!stack.isEmpty() && (stack.peek() == tmp)) { stack.pop(); answer += 2; } else { // 아니면 바구니에 인형 담기 stack.push(tmp); } // 다음 위치로 이동 break; } } } return answer; } public static void main(String[] args) { _03_크레인인형뽑기 t = new _03_크레인인형뽑기(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[][] board = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { board[i][j] = sc.nextInt(); } } int m = sc.nextInt(); int[] moves = new int[m]; for (int i = 0; i < m; i++) { moves[i] = sc.nextInt(); } System.out.println("1번 : " + t.solution1(board, moves)); System.out.println("2번 : " + t.solution2(board, moves)); } }결과값 5 0 0 0 0 0 0 0 1 0 3 0 2 5 0 1 4 2 4 4 2 3 5 1 3 1 8 1 5 3 5 1 2 1 4 1번 : 4 2번 : 0
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 맞왜틀 질문있습니다!
http://boj.kr/b4b633fb25634805a58a4d335d3e209b제가 작성한 코드입니다. 해설에있는 방법과는 다르게 코드를 짰지만 제가 작성한코드도 예제 입력시 모두 정답이 나오는데 제출을 하면 틀렸다고 합니다. 반례를 찾으려고 오래 붙잡고있었는데 도저히 생각이 안나요ㅜㅜ 도와주세요!! 항상 강의와 유튜브 잘 보고 있습니다! 감사합니다!
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션 9. 미로탐색(BFS)(질문)
선생님 안녕하세요 ~ 미로탐색(DFS) 문제를 BFS로 풀어보고 싶은데 어떻게 풀어줘야 문제가해결 될까요?? 지나온 길을 체크한 후 BFS에서는 체크를 어떻게 풀어줘야할지 모르겠습니다.. function solution(arr) { let answer = 0; let n = arr.length - 1; let nx = [-1, 0, 1, 0]; let ny = [0, 1, 0, -1]; let queue = []; queue.push([0, 0]); while (queue.length) { let [x, y] = queue.shift(); for (let k = 0; k < 4; k++) { let dx = x + nx[k]; let dy = y + ny[k]; if (dx === n && dy === n) answer++; if (dx >= 0 && dx <= n && dy >= 0 && dy <= n && arr[dx][dy] === 0) { arr[x][y] = 1; queue.push([dx, dy]); } } } return answer; }
-
해결됨it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
라이브러리를 활용해서 문제풀이
안녕하세요 선생님!프로그래머스에서 코딩 기초 트레이닝 0단계를 모두 풀고나서 수강 중인 학생입니다.제가 문제를 풀고나서 강의를 보고 코드를 비교하면서 리뷰도 진행하면서 느낀 의문이 있습니다.저는 프로그래머스에서 algorithm과 같은 라이브러리를 활용해서 문제를 많이 풀었는데 선생님 강의에서는 그 라이브러리의 원리를 풀어서 푸는 문제가 많더라구요!모든 코딩에는 정답이 없겠지만 코딩테스트에서 활용해도 무방한지 궁금합니다 ㅎㅎ