미로탐색 상태트리
미해결
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 선생님. dfs 문제 풀이 할 때 항상 상태트리를 그려보려고 하고있는데, 미로탐색 DFS 문제의 경우에는 어떻게 그려야 할 지 감이 안잡혀서 질문 드립니다. 이 문제에 대한 상태트리는 어떻게 그려야하는 건가요?
- python
- 코딩-테스트
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 선생님. dfs 문제 풀이 할 때 항상 상태트리를 그려보려고 하고있는데, 미로탐색 DFS 문제의 경우에는 어떻게 그려야 할 지 감이 안잡혀서 질문 드립니다. 이 문제에 대한 상태트리는 어떻게 그려야하는 건가요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌님 강의 잘 듣고 있는 취준생입니다. 정답코드 : http://boj.kr/d2b2cb191a0c4451ba5269509674bfe5 오답코드 : http://boj.kr/afbf220e88c64363b75a17bebd8affdc 정답코드는 큰돌님 코드 그대로인데요 dp를 -1로 초기화하고 -1이아니면 즉 계산된 값이 있으면 return dp 하고 탐색을 하기전에 dp를 987654321로 초기화하는 방식인데 저는 dp를 초기화할때 처음부터 fill로 987654321 로 초기화하면 if(dp != 987654321) return dp 하고 탐색하기전 dp=987654321 안해도 되지 않나? 이생각으로 코드를 바꿧는데 55%에서 시간초과가 뜨더라구요 왜 그런지 설명 부탁드립니다 ㅜㅜ
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/b08f18a0dc7741f59a7216d6b9f8b52f 선생님 제가 코드를 짜보았는데 선생님 코드와 크게 다를바가 없어보이는데 무엇이 문제인지 찾지를 못했습니다. 도와주시면 감사하겠습니다!
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/01ee098d59044720ae701b1fee5685d6 반례를 못찾겠습니다 선생님!! 도와주시면 감사하겠습니다! 링크를 잘못올려 수정했습니다!
해결됨
코딩테스트 [ ALL IN ONE ]
vscode에서 for 문 디버그하는 거 어떻게하나요 ?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님 ! 항상 좋은 강의 감사합니다. 이번 보석 상자 강의도 너무 잘 들었는데요, 처음에 혼자 생각해보다가 못 풀고 강의 보고 다시 정리해서 풀어봤습니다. 그런데 첫 제출에서 DivisionByZero 에러가 나서 99% 정도에서 틀렸다고 나오더라고요 탐색을 하는 부분에서 mid가 0일 때 return false를 줘서 두 번째 제출에 성공하긴 했는데, 첫 코드도 선생님 코드와 거의 비슷한 것으로 보여서요 어떤 부분이 잘못됐는지 궁금합니다 ! DivisionByZero 난 코드: https://www.acmicpc.net/source/77479342 정답 코드: https://www.acmicpc.net/source/77479392 감사합니다 !!!!!!
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 2-A 2178번처럼 Map에서 BFS 탐색을 하는 경우에도 시간복잡도는 O(V+E)인가요? 감사합니다.
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
처음 알고리즘을 공부하게 된 학생입니다. 알고리즘 문제풀이를 시작할 때 어떤 방식으로 하면 될지 질문드립니다. 우선 교안은 한번 다 익혔습니다. (중간 중간 생각나지 않는 부분도 있긴합니다.) 2309번 문제를 스스로 풀어본다. 문제해설을 본다. 문제해설을 다 이해하고 공부한 뒤 강의를 듣는다. 이러한 순서로 공부를 하는게 맞을까요? 그리고 문제가 풀리지 않을때는 고민해보다가 답지를 보는게 나을까요??
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
코드를 작성하고 돌려보니 1 ~ 2 pass였지만 나머지 3 ~ 5번에서 문제가 발생하였습니다. 그래서 코드를 다시 확인을 해봐도 원인를 못 찾았다. 그래서 강사님의 코드로도 체점을 진행해보니 동일한 결과가 발생하였습니다. 그래서 in 3 ~ 5을 보니 문제와 다르게 배열의 크기가 100,000 으로 설정되어 있는 것을 발견하였습니다. 아마 제 예상으로는 in 3 ~ 5까지의 문제가 다른 문제로 바꾼 것 같습니다. 한번 확인해주시면 감사합니다.
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님, 4-B 문제를 선생님 풀이를 보고 다시 풀어봤습니다. 입력배열 A의 크기를 문제에서 주어진 최댓값인 20으로 설정할 때는 메모리초과로 오류가 나는 데, 혹시나 해서 21로 늘려보니 통과했습니다. http://boj.kr/985212f27de447b19f0c9794794c53e6 http://boj.kr/915ba15212a94c9782d0a40dc8e1ce0c 어디서 문제가 생기는 지 알 수 있을까요? 강의 항상 잘 보고 있습니다. 감사합니다.
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. http://boj.kr/ef8ad015457e4bbba05ac351eb5ae0d8 안녕하세요 강사님 7-M 문제에서 살아있는 나무는 정렬을 위해 deque를 사용했고죽은 나무는 queue를 사용해서 양분으로 바꿔줬는데 계속 시간초과에서 막혀 질문글 남깁니다...이 문제는 deque로 풀면 안되는 문제일까요? 아니면 제 코드에서 시간을 단축 시킬만한 곳이 있을까요?
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
for(int i = 1; i <= n; i++){ cin >> m; for(int j = 0; j < m; j++){ cin >> temp; adj[i].push_back(temp); adj[temp].push_back(i); } } 입력을 받아서 인접 노드들을 벡터에 삽입해주셨는데, adj[temp].push_back(i); 이 부분이 들어가게 되면 같은 노드가 2번씩 벡터에 삽입되지 않나요? 예를 들어, 예제 입력 1에서 보면 1~6번 구역마다 인접 구역을 입력으로 받으니까 adj[i].push_back(temp); 이코드만 있어도 양방향 간선이 표시된다고 생각합니다. a[1] => {2, 4} a[2] => {1,3,6,5} a[3] => {4, 2} a[4] => {1, 3} a[5] => {2} a[6] => {2} 이렇게요
미해결
코딩테스트 실전 모의고사(with C++) : 대기업 대비
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 제출하니까 시간초과가 뜹니다. 어디가 잘 못 된건가요?? import java.io.*; import java.util.*; public class Main { public static int[] pow, st; public static int n,d,k,answer=Integer.MIN_VALUE; public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); n=sc.nextInt(); d=sc.nextInt(); k=sc.nextInt(); pow = new int[d+1]; st = new int[n+1]; pow[1]=1; for(int i=2; i<=d; i++) pow[i] = pow[i-1]*2; for(int i=1; i<=n; i++) { int num, m; m=sc.nextInt(); for(int j=0; j<m; j++) { num=sc.nextInt(); st[i] += pow[num]; } } dfs(0,0,0); System.out.print(answer); } public static void dfs(int L, int s, int bit) { if(L==k) { int cnt=0; for(int i=1; i<=n; i++) if((bit&st[i])==st[i])cnt++; //st[i]가 bit의 부분집합이라면 cnt증가 answer = Math.max(answer, cnt); //최대값 갱신 } else { for(int i=s; i<d; i++) { //조합으로 탐색 dfs(L+1, i+1, bit+pow[i]); } } } }
미해결
코딩테스트 실전 모의고사(with C++) : 대기업 대비
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 답이 틀렸다고 나오는데, 어디가 잘 못 된건지 궁금합니다. import java.io.*; import java.util.*; public class Main { public static void main(String[] argvs) { Scanner sc = new Scanner(System.in); String s=sc.next(); int res=0; int sum=0; for(char x : s.toCharArray()) { if(Character.isDigit(x)) { res = res*10 + (x-48); } else { sum+=res; res=0; } } System.out.print(sum); } }
미해결
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
http://boj.kr/f9e04dedecf9402eb6e1bcb1042dcfa6 선생님 안녕하세요. 선생님이 작성해주신 답이랑 비교해봤을 때, 차이가 나는 부분은 if문을 통해 idx가 a[i].first보다 큰지 작은지를 가른뒤, 계산해주는 부분밖에 없는 것 같습니다. 선생님께서는 a[i].second - a[i].first 또는 idx 이런식으로 직접 해주셨고, 저는 s라는 변수에 a[i].first 또는 idx 를 담아줘서 계산해준 것 밖에 차이가 없다고 생각하는데요. 어떤부분이 달라서 정답이 아니라고 나오는 걸까요?? (if(a[i].second <= idx) continue; 이부분은 문제에 웅덩이는 겹치지 않는다는 조건이 있어서 넣지않았습니다.)
미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
5 9 8 7 6 5 5 6 7 8 9 1 2 3 7 8 4 5 3 4 2 6 2 8 4 2 이예제의 답이 왜 3번학생인가요 4번학생이이 제일 많이 겹치는거 아닌가요?
해결됨
2주만에 통과하는 알고리즘 코딩테스트 (2024년)
로컬 테스트에서는 잘 동작되는데, 백준에서는 계속 '틀렸습니다' 오답 상태입니다 JS 문법상 고려해야할 사항을 빼먹은 건지, 어떤 다른 테스트 케이스의 경우를 고려 못한 건지 모르겠네요 🥺
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include<stdio.h> #include<algorithm> using namespace std; int a[1001], n; int Count(int s){ int i, cnt=1, sum=0; for(i=1; i<=n; i++){ if(sum+a[i]>s){ cnt++; sum=a[i]; } else sum=sum+a[i]; } return cnt; } int main(){ //freopen("input.txt", "rt", stdin); int m, i, lt=1, rt=0, mid, res, maxx=-2147000000; scanf("%d %d", &n, &m); for(i=1; i<=n; i++){ scanf("%d", &a[i]); rt=rt+a[i]; if(a[i]>maxx) maxx=a[i]; } while(lt<=rt){ mid=(lt+rt)/2; if(mid>=maxx && Count(mid)<=m){ res=mid; rt=mid-1; } else lt=mid+1; } printf("%d\n", res); return 0; } 강사님께서 직접 올려주신 코드 복사해서 돌려봐도 채점 결과가 아래 사진과 같이 뜹니다 그동안 다른 문제들 채점 프로그램은 이상이 없었는데 43번만 채점결과가 이상해서 질문 드립니다.
미해결
it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 21번 문제 질문드립니다. 문제에서 두 사람 모두 0-9까지 카드를 중복없이 각 한 장씩 갖고 있다고 하였는데, 코드 상에서 이에 대한 예외처리가 없어 scanf로 데이터 넣어주는 부분에서 이중 for문을 돌리면 될까요? 다른 좋은 방법이 있을지 문의드립니다.
해결됨
10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 큰돌님 암기왕 문제를 map을 사용한 경우 탐색에 log(n)의 시간복잡도를 갖는데, 이분탐색을 사용한 방법과 시간차이가 커서 질문드립니다. sort를 사용하는 경우에 정렬에 nlog(n), 값을 찾는데 log(n)이 걸리며, map을 사용하면 삽입에 n * log(n), 값을 찾는데 log(n)이 걸리니 결국 비슷할거라 생각했는데 시간차이가 2배나 나는 이유를 모르겠습니다 ㅜ #include<bits/stdc++.h> using namespace std; int t, n, m, temp; int main(){ ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL); cin >> t; for(int i = 0; i < t; i++){ map<int, int> mp; cin >> n; for(int j = 0; j < n; j++){ cin >> temp; mp.insert({temp, 0}); } cin >> m; for(int j = 0; j < m; j++){ cin >> temp; if(mp.find(temp) == mp.end()) cout << 0 << '\n'; else cout << 1 << '\n'; } } return 0; }