묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨코딩테스트 [ ALL IN ONE ]
과제형 코딩테스트 비율은 얼마나되나요?
알고리즘 코테 말고 과제형식으로 진행이 되는것은 비율이 얼마나 되는지 알려주실 수 있나요? 대략 느낌상 이렇다 정도만 얘기해주셔도 괜찮습니다
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 런타임 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 큰돌님! 2-I를 푸는 과정에서 코드를 수정해도 똑같은 오류가 나서 질문 남깁니다..코드를 작성할 때마다 런타임에러가 나는데 이유를 모르겠습니다.http://boj.kr/a34c68854cf14b81923e976a22e91188
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1강 숫자야구 문제 질문
안녕하세요,알려주신 대로 코드를 작성하였는데 결과가 계속 안나오네요. 혹시 어떤 부분에서 문제가 있는지 알 수 있을까요?n=int(input())result=0 # 가능한 결과의 개수mycon=[list(input().split()) for _ in range(n)]for a in range(1,10): for b in range(1,10): for c in range(1,10): count=0 if a==b or b==c or a==c: continue for i in range(n): strike_count=0 ball_count=0 #nowcon은 각 조건을 담은 리스트 nowcon=mycon[i] if str(a)==nowcon[0][0]: strike_count+=1 if str(b)==nowcon[0][1]: strike_count+=1 if str(c)==nowcon[0][2]: strike_count+=1 if str(a) in nowcon[0]: ball_count+=1 if str(b) in nowcon[0]: ball_count+=1 if str(c) in nowcon[0]: ball_count+=1 ball_count-=strike_count if strike_count==nowcon[1] and ball_count==nowcon[2]: count+=1 if count==n: result+=1 print(result) 감사합니다
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 검토
안녕하세요 제가 강의듣기 전에 풀어보았는데저의 경우 처음 dfs()를 호출할때 for문으로 돌려서 했는데 이런식으로 해도 괜찮을까요?function solution(n, m) { let answer_arr = [], answer_cnt = 0; let arr = Array.from({ length: n }, (v, k) => k + 1); function dfs(k, str, cnt) { if (cnt > m) { answer_arr.includes(str) || answer_arr.push(str); } else { str += k + " "; for (let x of arr) dfs(x, str, cnt + 1); } } for (let x of arr) dfs(x, "", 1); return answer_arr; }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-L 주몽 문제 질문입니다
안녕하세요 큰돌님. 현재 강의를 듣고 있는 수강생입니다. 현재 1-L문제를 Vector형식에서 이중 for문을 이용해서 푸는데 고유한 값을 만들 수 있는 두개의 값이 있을 경우 이후 두개의 값을 0으로 처리하여 첫 번째 for문에서 0이 있을 경우 두 번째 for문으로 들어가지 않게 처리를 했는데요. 그 처리를 하니 백준에서 틀렸다고 나옵니다. 하지 않았을 경우에는 맞다고 표시가 되고요. 그래서 이유가 뭔지 궁금합니다. http://boj.kr/561f58234a27422bb2b2e02606e349fa
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-N 비효율적으로 풀었는데 이렇게 접근해도 되나요?
안녕하세요 큰돌님,다름이 아니고 3-N 완전이진 트리문제 이거 정석적인 방법이 잘 안떠올라서 무식하게 풀었는데 이렇게 풀어도 괜찮은가요?항상 문제 먼저 풀어보고 안풀리면 큰돌님 영상보는 식으로 학습중이거든요.... 이번에는 영상 보기전에 풀어서 통과가 되었지만 이런 방식으로 문제에 접근해도 괜찮은 건지 여쭙니다. #include <bits/stdc++.h> using namespace std; int K, ksize, input; vector<vector<int>> result; vector<int> v; int main() { cin >> K; ksize = pow(2, K) - 1; for (int i = 0; i < ksize; ++i) { cin >> input; v.push_back(input); } while (v.size()) { vector<int> temp; for (int i = 0; i < v.size(); i += 2) { temp.push_back(v[i]); } result.push_back(temp); for (int i = v.size() - 1; i >= 0; i--) { if (i % 2 == 0) { v.erase(v.begin() + i); } } } for (auto i = result.rbegin(); i != result.rend(); ++i) { for (const auto &n : *i) { cout << n << ' '; } cout << '\n'; } return 0; }
-
미해결Do it! 알고리즘 코딩테스트 with C++
백준 11404 플로이드 문제 질문있습니다.
입력을 받을 때 for (int i = 0; i < m; ++i) { int a, b, c; cin >> a >> b >> c; for (int i = 0; i < m; ++i) { int a, b, c; cin >> a >> b >> c; if (adj[a][b] > c) adj[a][b] = c;위처럼 입력을 받았는데요여기서 adj[a][b] = c;이게 빠지면 틀렸다라고 나오는데 왜 틀린것인지 이해가 안가는데 설명 부탁드립니다..
-
미해결Do it! 알고리즘 코딩테스트 with C++
문제 85번 질문드립니다
#include<iostream>using namespace std;int T[16];int P[16];int D[16];int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); //freopen("input.txt", "r", stdin); int N; cin >> N; for (int i = 0; i < N; i++) { cin >> T[i] >> P[i]; } for (int i = N - 1; i >= 0; i--) { if (i + T[i] > N) D[i] = 0; else { D[i] = max(D[i + 1], P[i] + D[i + T[i]]); } } cout << D[0];}여기서 초기화할 때 왜 0으로 하면 14프로까지 갔다가 틀렸습니다가 나오는지 잘 모르겠습니다 'i + T[i] > N' 다음 조건이 성립하면 항상 점화식의 값이 0이 나오는 것이 아닌가요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
바둑이 승차 - bfs 시간초과
안녕하세요, 바둑이 승차를 bfs로 풀어보다가, 시간 초과 에러가 떠서 여쭤봅니다.!아래는 제 코드입니다.import java.util.*; public class Main { static class Node { int sum; int level; public Node(int sum, int level) { this.sum = sum; this.level = level; } } static int n; static int w; static int[] puppies; static int result; public int bfs() { Queue<Integer> Q = new LinkedList<>(); Q.offer(puppies[0]); Q.offer(0); int L = 0; while(!Q.isEmpty()) { int len = Q.size(); if(L==n) break; for(int i=0 ; i<len; i++) { int tmp = Q.poll(); if(tmp>w) continue; result = Math.max(tmp, result); if(L<n-1 ) { int next = puppies[L+1]; Q.offer(tmp + next); Q.offer(tmp); } } L++; } return result; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); w = sc.nextInt(); n = sc.nextInt(); puppies = new int[n]; for(int i=0; i<n; i++) { puppies[i] = sc.nextInt(); } T.bfs(); System.out.println(result); } } bfs, dfs 모두 모든 노드를 방문한다는 점에서, 같을 것 같은데, 왜 bfs는 시간 초과가 날까요.?제가 break을 놓친 부분이 있을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
선생님 2주차 개념 #9의 예제 문제 질문있습니다.
해당 코드는 제가 직접 구현한 문제 해답 코드인데요. 5 51 0 1 0 11 1 0 0 10 0 0 1 10 0 0 1 10 1 0 0 0의 테스트 케이스를 통과하도록 짜봤습니다.n * m 의 인접행렬을 만들고 1을 발견할 시 그 위치에서부터 ↑→↓←의 순으로 탐색을 하며 네 방향의 탐색을 마쳤을 때 결과가 모두 1이 아니라면 결과값을 1씩 증가시켜 답을 출력하는 코드입니다.첫번째 질문으로는 제가 구현한 코드가 너무 비효율적인 것 같습니다. 어떻게하면 이 코드에서 더 좋은 코드로 발전시킬 수 있을까요?두번째 질문으로는 제가 구현한 방식을 dfs라고 할 수 있는걸까요? 그냥 감으로 작성한 코드라서 이게 될줄 몰랐습니다..코드는 다음과 같습니다.단순히 구현만 하는것으로는 정답이겠지만 만약 이런 문제가 나온다면 시간초과나 메모리 초과가 날 게 분명해 보입니다../* 연결된 육지는 모두 오염 바다로는 갈 수 없다. 오염시킬수 있는 방향은 상 하 좌 우 네방향 최소 몇번을 이동해야 모든 육지를 오염시킬 수 있는가? 1 : 육지 0 : 바다 범위 1 <= N <= 100 1 <= M <= 100 예제 입력 입력은 맵의 세로길이 N과 가로길이 M이 주어진다. N * M의 맵이 주어진다. 5 5 1 0 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 출력 4 */ #include <bits/stdc++.h> using namespace std; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; int n, m, findCount = 0; void dfs(int y, int x, int **ajm){ ajm[y][x] = 0; int check = 0; for(int i = 0; i < 4; i++){ int ny = y + dy[i]; int nx = x + dx[i]; if(ny < 0 || ny >= n || nx < 0 || nx >= n) { check++; if(check == 4){ findCount++; return; } continue;} if(ajm[ny][nx] != 1) { check++; if(check == 4){ findCount++; return; } continue; } if(ajm[ny][nx] == 1){ dfs(ny,nx,ajm); return; } } } int main(){ int num; cin >> n >> m; int **ajm = new int*[n]; for(int i = 0; i < n; i++){ ajm[i] = new int[m]; } for(int i = 0; i < n; i++){ for(int j= 0; j < m; j++){ cin >> ajm[i][j]; } } for(int i = 0; i < n; i++){ for(int j= 0; j < m; j++){ if(ajm[i][j] == 1){ dfs(i, j, ajm); } } } cout << findCount; return 0; }
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 검사 부탁드립니다!
안녕하세요 이진트리 개념 듣고 강의 듣기전에 한번 풀어보았는데 이런 식으로 작성해도될까요? 틀린부분 있으면 피드백 부탁드립니다!function solution(k) { let answer = []; function dfs(n, arr) { let arr1 = [...arr, n]; if (n > k) { arr.length && answer.push(arr); return; } else { dfs(n + 1, arr); dfs(n + 1, arr1); } } dfs(1, []); return answer; }
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
1-1 왜 런타임 에러가 나오는지 모르겠습니다
package org.example; import java.util.Scanner; import static java.lang.Character.*; public class Main { public static int solution(String str, String ch){ int result = 0; for(int i = 0; i < str.length(); i++){ if(toLowerCase(str.charAt(i)) == toLowerCase(ch.charAt(0))){ result++; } } return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String str = scanner.next(); String ch = scanner.next(); System.out.println(solution(str, ch)); } }IDE에서는 정상적으로 실행되는데채점사이트에서는 런타임에러가 나네요 ㅠㅠ이유를 모르겠습니다
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
안녕하세요
for(int i = 0;i<s.length();i++){ if(s.charAt(i)>='a' && s.charAt(i)<='z'){ s.charAt(i) = s.charAt(i) - 32; System.out.print(s.charAt(i)); } else{ s.charAt(i) = s.charAt(i) +32; System.out.print(s.charAt(i)); } } 안녕하세요 위와 같이 풀었을때s.charAt(i) = s.charAt(i) - 32;이 코드에서 s.charAt(i) 인덱스에 직접 문자값을 저장할 수 없는 이유는 무엇인가요?? 리터럴이라서 그런건가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2468 질문있습니다!
http://boj.kr/edaf5f63d5104445b6740ef8ab48e5c6 강의를 듣기 전에 문제를 풀어서 제출을 했습니다.예제는 맞았는데 틀린 이유를 찾지 못했습니다. 한번 살펴봐주시면 감사하겠습니다!항상 감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
m1 세팅 확인 부탁드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.이렇게 진행했는데 오류가 계속 뜹니다.visual studio code는 세팅을 하고 설치하면 될까요?추가로 터미널에서 줄바꿈 기능은 따로 없는걸까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
11. 임시반장 정하기 런타임 오류 피드백 부탁드립니다
비슷한 질문을 확인했는데, 제 경우에는 인덱스 범위를 맞게 설정한거 같고 인풋 아웃풋 결과도 문제가 없는거 같은데 채점 사이트에서만 런타임 오류라고 뜨네요 ㅠㅠ 왜그런지 봐주세요. 1학년부터 5학년까지라고 하셨지만 저는 5*5배열을 만들어서 해결하고 싶었습니다.아래 코드에서 어떻게 고치면 될까요?? import java.util.*; public class Main { public int solution(int n,int[][] arr){ int answer=0, max=Integer.MIN_VALUE; for(int i=0;i<n;i++){ int cnt=0; for(int j=0;j<n;j++) { for(int k =0;k<5;k++) { if(arr[i][k] == arr[j][k]){ cnt++; break; } } } if(max<cnt){ max=cnt; answer= i+1; } } 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[n][n]; for(int i=0; i<n; i++) { for (int j = 0; j < 5; j++) { arr[i][j] = kb.nextInt(); } } System.out.print(T.solution(n,arr)); } }
-
미해결Python 알고리즘 베스트 10
강의에 없는 문제의 정답은 없을까요?
제가 맞게 풀었는지 의문이 들고, 다른 풀이법도 확인해보고 싶어 여쭤봅니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-C 질문
안녕하세요 큰돌 선생님 좋은 강의 감사합니다 문제를 복습하다 질문이 생겼는데요, int &ret = d[y][x]; if (ret) return ret; check[y][x] = 1;이 부분에서 check[y][x] = 1; 이 코드가 위의 두 줄의 코드보다 먼저 나오면 왜 틀리는건가요?제가 처음 코드를 작성했을때 check[y][x] = 1; int &ret = d[y][x]; if (ret) return ret;이런식으로 작성했다가 바로틀렸다고 나와서, 고민하다가 선생님 코드와 비교해보니 이 부분에 차이가 있어서 고쳐서 맞았습니다. 해당 y, x 지점에 dp의 값이 있다하더라도 그 값을 사용하는것 맞지만 방문하는것도 맞으니 상관없다고 생각했는데 혹시 어떤 부분이 잘못된 생각인가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
강의 자료에 대해서 질문 있습니다.
안녕하세요! 노션 공유를 받았는데 ([EBook] 개발자 취업 비밀노트) << 이 교재에 대해서 공유를 받았습니다. 혹시 이게 강의 교재인지 아니면 잘못 공유 받은 것 인지 궁금하여 여쭤봅니다!
-
해결됨코딩테스트 [ ALL IN ONE ]
스택으로 DFS 구현하는 방법
안녕하세요. 지금 그래프 이론 파트를 보고 있는데요! 혹시 DFS를 스택으로 구현하는 거랑 델타 탐색에 대한 부분도 강의에 있는지 궁금합니다이론 파트 먼저 보고 문제 푼 후에 풀이 영상 보려고 남겨뒀는데 혹시 문제 풀이 쪽에서 설명을 해주시면 미리 보고 정리해두고 싶어서요