묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 2번 케이스를 해야하는 이유를 제가 잘 이해한게 맞을까요?
쌤, 강의 시간 3:36 초에서 [50만][50만] 배열을 생성하면 공간복잡도가 커서 안된다는 말씀을 듣고 그 예시를 코드로 작성해 보았습니다! (Case 2 를 해야하는 이유를 이해하기 위해서)http://boj.kr/3b3efff1b680482380e9e4a513b6ce12max 를 500으로 하면 돌긴하는데 당연히 틀리고, 50만으로 하니 컴파일 에러가 떠서 안되더라구요.. 이차원 배열 행을 "각 턴"으로 생각하였고, 열을 "위치"로 생각하여 풀었습니다.영상에서는 "수빈의 범위", "동생의 범위"라고 알려주시긴 하셨는데 같은 내용으로 이해한 것이 맞는지 궁금하였습니다!
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
2강 정수론 14252
힌트가 없다는 가정한다면,for i in range(42, 2184): 구문에다가도if i == 2183: count += 2위의 조건문을 넣어줘야겠죠?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-N 질문 있어요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.http://boj.kr/3a71a94e910e4a2da75f16b9b380ced6 위의 코드에서 5번째 줄 즉 int solve라고 하면 왜 틀리는지 알고 싶습니다. 제가 생각하기엔 return 시 다 c로 나눈 나머지가 전달되고 그러면 c(2,147,483,647)보다 작은 값 즉 int형으로 담아내기 충분한 값이 return 될텐데 왜 long long 일 때와 달리 틀렸다고 나오는지 알고 싶습니다. 5번째 줄 int solve를 long long slove로 바꾸면 맞았다고 나옵니다. 또한 강사님의 공유 코드에서 if(b % 2)ret = (ret * a)% c;라는 부분이 9줄에 있는데 이게 아니라 if(b % 2)ret = (ret * (a % c))% c; 가 되어야 하는 거 아닌지 알고 싶습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
어느 부분에서 오답인지 잘 모르겠어요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 영상보기 전 혼자 풀었었던 답인데 어떤 부분에서 오답인지 모르겠습니다. 도와주세요 ㅜ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int N = scan.nextInt(); int M = scan.nextInt(); int[] nums = new int[N]; int index1 = 0; int index2 = 1; int answer = 0; for (int i = 0; i < N; i++){ nums[i] = scan.nextInt(); } int sum = nums[index1] + nums[index2]; while(index2<N-1){ // index2가 2일 때 if(sum==M){ // answer++; // anser은 +1이 됨. 이 때 index2는 2 sum -= nums[index1++]; sum += nums[++index2]; // 인덱스 위치 옮겨줌. index2는 3이 됨. if(sum == M && index2 == N-1){ answer++; } continue; } if(sum<M){ sum += nums[++index2]; continue; } if(sum>M){ sum -= nums[index1++]; continue; } } System.out.println(answer); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-N 시간 복잡도 접근 질문드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 단순히 한 자리에서 5번 호출, 영향을 받을 수 있는 지점 99개가 있으므로 최대 약 5^99 이라고 생각했거든요.5x5의 색종이를 붙이니까 영향 받는 타일이 더 생략될 수는 있겠다 싶었지만 좀 그래도 좀 클 것이라고 생각했습니다.혹시 선생님이 이 문제 어떻게 접근하셨는지 궁금합니다
-
해결됨코딩테스트 [ ALL IN ONE ]
완전탐색 - 구현(순열) 질문
강사님, nums 1234로 만들수 있는 모든 순열을 반환하시오 문제에서 질문이 있습니다.curr = []라고 지정하지 않았는데 어디에서 갑자기 curr이 빈리스트로 자동적으로 생성된건가요?curr이랑 nums 개수 같으면 answer에 순열 추가되고 함수종료되는건 알겠는데 curr가 [1, 2, 3, 4]일때 재귀함수 종료되고 다음 curr.pop()로 넘어가서 [1, 2, 3]이 되는거까진 이해갔습니다. 넘어가는 순간 또 재귀함수가 종료되서 curr.pop()이 되서 [1, 2]가 되는건 알겠는데 갑자기 3, 4만 빠진 여기에서 멈추게 되는 것이 이해가 가지 않습니다. 여기에서 멈춰서 다시 4, 3으로 진행되는게 이해가 안가서요ㅠㅠ 1, 2도 전부 이전의 재귀함수가 종료된 것이니 pop이 되어야 되는거 아닌가요?ㅠㅠ for문 안의 재귀함수가 종료될시 어디로 돌아가는지가 약한거 같은데 이부분 공부하는 방법이 있으까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A dfs 시도
https://www.acmicpc.net/group/board/view/20223/37592 코드가 불완전해서 채점에 아직 돌리지 않아서 백준 글쓰기 링크를 올렸습니다..! 막 dfs,bfs를 배우기 시작했는데 최소거리를 구할땐 bfs를 써야 한다고 선생님 강의에서 배웠습니다. 호기심으로 dfs를 시도했는데 출력이 아무것도 나오지 않습니다.. 어떤 부분을 고쳐야 할까요? 하루종일 했는데 답이 나오지 않습니다 ㅠㅠ 2-A (2178 - 미로찾기) 문제입니다. 선생님의 완벽한 dfs 코드가 있으면 보여주시면 더욱 감사하겠습니다..! 보고 배우고싶습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-I / cin으로 숫자를 입력 받으면 일단 문자열로 받아지나요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 큰돌님.cin을 사용해서 숫자를 입력받으면 우선 문자열로 처리된 후에 int로 변환이 되는건가요?왜냐하면 해당 문제의 코드에서 string형 변수인 s에다가 숫자를 받았는데 이 부분 때문에 고민을 많이했거든요. string형에다가 숫자를 못받을거라고 생각해서..또 교안에서 getline을 설명할 때도 숫자를 입력받은 후 '\n'을 없애기 위해 bufferflush를 사용했었는데 이것 또한 문자열로 인식하기 때문인가 싶어서요.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 질문합니다
마지막 부분에 vector로 새로 만들어서 넣지 않고 기존의 a배열을 미리 sort한 후 해당되지 않는 두 개의 인덱스 값만 빼서 출력했더니 틀렸다고 하네요. 차이가 무엇일까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 che 배열크기와 a배열 크기가 다른 이유가 무엇인가요?
bool che[4000001];int n, a[2000001], p, lo, hi, ret, sum; 이부분 왜 a배열 범위는 반으로 하신건지 궁금합니다!또 에라토스테네스 체에서 i*i크기 까지만 보통 크기 비교 해주는데 다르게 하신 이유도 궁금합니다.
-
해결됨코딩테스트 [ ALL IN ONE ]
dfs, bfs 인접리스트
안녕하세요 강사님, 다름이 아니오라그래프 탐색에서 그래프를 표현하는 방법으로 소개해주신 것 중에 인접리스트를 보면딕셔너리로 key(노드) : values(간선)으로 표현하셨는데강의 말고 다른 교재나 설명들을 보면 인접리스트를 표현할 때 딕셔너리로 나와있는 것은 본 적이 없고 강의 중에 풀어주셨던 rooms 예제에 나오는 것처럼인덱스를 노드로 생각해서 [['b', 'c'], ['a', 'c', 'd'] , ['a', 'b'], ['b']] 이렇게 2차원 리스트로 표현하는 것만 나와있는데 어떻게 공부를 하면 되는 것일까요?제가 한 방식을 정해서 체화시키는 것을 좋아해서요ㅠㅠ 자세히 설명해주시면 감사드리겠습니다.또한 visited = []에 방문한 노드를 append로 추가하는 방식과visited = [0] * (노드 번호 + 1, 0번째는 안쓰므로) 이거에서 방문한 노드의 원소 0을 1로 바꾸는 방식의 차이점이 무엇인지 궁금합니다.1로 방문처리 해주는거랑, 방문한 노드를 추가해서 처리해주는 것의 차이가 궁금합니다.유명한 코테 교재들 모두 가지고 있어서 봤는데visited = [0] *(n+1)dfs 함수 내에visited[v] = True 이런식으로 1로 바꿔주면서 방문처리를 하더라고요 append는 안보이는거 같아서 여쭤봅니다! 아래는 제가 위에서 여쭤본 강의와 다른 교재들에서 본 내용인데 교재 모두가 이렇게 구현하고 있어서 여쭤봅니다ㅎㅎ 보편적인걸 원해서요 질문이 길어져서 죄송합니다# DFS 메서드 정의def dfs(graph, v, visited):# 현재 노드를 방문 처리visited[v] = Trueprint(v, end=' ')# 현재 노드와 연결된 다른 노드를 재귀적으로 방문for i in graph[v]:if not visited[i]:dfs(graph, i, visited)# 인접 리스트 방식으로 그래프 표현# 각 노드가 연결된 정보를 표현(2차원 리스트)graph = [ [], [2,3,8], [1,7], [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ]# 각 노드가 방문된 정보를 표현(1차원 리스트)# 기본적으로 모든 값들을 False로 초기화하고, index 0은 사용하지 않는다.visited = [False]*9
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 틀린 부분을 모르겠습니다.
http://boj.kr/ab00c6a0aa494a37a90f5ce08cc4b854저는 좀 다르게 배열을 0으로 초기화하면 물에 잠긴 지역은 1로 표시해서 dfs로 0만 방문하도록 했습니다. 그런데 아무리 찾아봐도 틀린 부분을 모르겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘 공부 방법
안녕하세요 큰돌님 이제 막 교안을 끝내고 1주차부터 풀어보기 시작하였는데요!풀리지 않는 문제를 고민하는 시간 1~4시간까지라고 설명해주신 유튜브 영상도 보았는데 그럼 먼저 고민하는 시간은 알려주신 대로 하고, 그럼에도 못 푼 문제는 강의를 보면 되나요??그리고 또 스스로 푼 문제는 바로 해설강의로 들어가면 될까요?? 그리고 나서 해설 강의에서 보여주신 여러 방법들을 직접 타이핑 하면서 학습하면 되는 건지 궁금합니다! 🙂 그리고 이미 풀었던 문제에 대한 복습은 어떻게, 어떤 주기로 진행하면 되는지 역시도 궁금합니다!감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 반례 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.선생님 , 코드가 많이 지저분한 코드지만 예제 출력이랑 반례들을 여러가지 해본 결과 잘 출력 되는것 같은데 3%에서 계속 틀렸다고 뜹니다... 어디 부분이 잘못된 건지 알 수 있을까요??http://boj.kr/4530d78bb2464d989fe7a7e5adc42342
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 질문합니다
안녕하세요, 강사님.저는 처음에 아홉 난쟁이의 키 분포를 저장할 수 있는 배열을 선언하고, 해당 키에 해당하는 난쟁이를 배열에 넣고, (전체 합 - 100)에 해당하는 난쟁이 두명을 찾는 방식으로 문제를 해결했습니다. 예제는 맞는데 틀렸다고 뜨는 이유를 모르겠습니다. 감사합니다.http://boj.kr/7e220e252b364c1e8dbf2d7c16a72cd0
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
문제6번 컴파일에러 질문 드립니다!
안녕하세요!입력에 대한 출력값은 문제의 요구사항에 맞게 나오는데 계속 컴파일 에러가 뜹니다.import java.util.Scanner; public class Main { public String solution(String str){ if (str == null || str.isBlank()){ return str; } StringBuilder sb = new StringBuilder(); for (char c : str.toCharArray()) { if (sb.indexOf(String.valueOf(c)) == -1) { sb.append(c); } } System.out.println("sb :" + sb.toString()); return sb.toString(); } public static void main(String[] arg){ Main T = new Main(); Scanner kb = new Scanner(System.in); String str = kb.nextLine(); System.out.println(T.solution(str)); } } 어느 부분이 문제가 되는건지 알려주시면 정말 감사하겠습니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
선생님 감사합니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 올해 초 골드 4~5도 못풀던 제가 플레를 스스로 풀었습니다.열심히 계속 진행하겠습니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
8-6 순열구하기 이러한 방식으로 풀어도 괜찮을까요?
이전 값을 DFS 매개변수로 넘겨서 이전값이 아니면 더 깊이 들어가는 방식으로 풀이를 혼자 했었습니다. 괜찮은 풀이 방법일까요?public class P6_순열 { static int n, m; static int[] arr; public static void DFS(int L, int prev, String answer) { if(L==m){ System.out.println(answer); }else{ for(int i=0; i<n; i++){ if(arr[i]!=prev) DFS(L+1, arr[i], answer+arr[i]+" "); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); m=sc.nextInt(); arr=new int[n]; for(int i=0; i<n; i++){ arr[i]=sc.nextInt(); } DFS(0,0,""); } }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
BFS 자료구조
BFS 문제를 PriorityQueue가 아닌 LinkedList로 풀던데 이유가 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 스크립트 관련 질문드립니다
안녕하세요! 감사하게도 제공해주신 강의 스크립트로 필기를 자주하는데요, 1주차 개념 #10. 구현과 문제를 푸는 방법의 기초 강의에 스크립트가 없어서요..ㅜㅜ 제가 알기론 인프런에서 ai로 스크립트를 제공하는 걸로 알고있는데 해당 강의 스크립트는 인프런에다가 요청 드려야할까요?