묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
HashSet 최적화
우리가 ArrayList 에서 LinkedList로 넘어온 이유가배열 메모리 확보로 인한 낭비로 인해 경우에 따라서 LinkedList 를 사용해야한다고 알고 있는데, set 에서도 ArrayList 처럼 배열 메모리를 확보해두고 배열의 크기를 2배씩 늘리는 식으로 작동하나요 ?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
초기값 초기화 없이 구현 하는 방법 후에 Top-Down 방식
원래 Top-Down 방식까지 설명하고 알아두면 좋은 내용들로 넘어갔는데Top-Down는 재귀에 익숙하지 않거나 초보자가 하기 어려워서 넘어 가진 건지 궁금해서요!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
긍정왕 홍철이의 구걸 여행 다른 코드 관련 질문
#include<bits/stdc++.h> using namespace std; int dy[]={-1, 0, 1, 0}; int dx[]={0, 1, 0, -1}; int visited[3][3]; int m[3][3]; vector<pair<int,int>> v; int n, ny, nx; void print() { for(auto i : v) cout << m[i.first][i.second] << " "; cout << "\n"; } void go(int y, int x) { if(y == n - 1 && x == n - 1) { print(); return; } for(int i = 0; i < 4; i++) { ny = y + dy[i]; nx = x + dx[i]; // 제약 조건 if(ny >= n || nx >= n || ny < 0 || nx < 0 || visited[ny][nx]) continue; visited[ny][nx] = 1; v.push_back({ny, nx}); // 다음 경로 탐색 go(ny, nx); // 원상 복구 조건 visited[ny][nx] = 0; v.pop_back(); } } int main() { n = 3; for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { cin >> m[i][j]; } } visited[0][0] = 1; v.push_back({0, 0}); go(0, 0); return 0; } 이건 제가 작성한 긍정왕 홍철이의 구걸 여행 코드입니다.10 20 2170 90 1280 110 120 이렇게 사용자 입력을 받았는데 결과가 인강처럼 여러개가 나오지 않고10 20 21 12 12010 20 21 12 90 110 12010 70 10 20 21 12 120딱 이 3가지만 나오는데 도저히 코드의 문제점을 모르겠습니다. 왜 그런건가요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
메모리 초과가 나는 이유가 궁금합니다!
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의자신은 어떻게 이해했는지DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 안녕하세요 선생님![브루트 포스 알고리즘 : BOJ 1342 행운의 문자열] 문제를 혼자 풀었는데, 메모리 초과를 해결하지 못해 질문합니다..!permutations를 이용하여 풀고, set 함수를 사용하여 중복되는 것이 없도록 했습니다. 혹시 set 함수를 사용해서 메모리 초과가 나온 걸까요..?from itertools import permutations S = input() answer = set() for x in permutations(S, len(S)): ok = True for i in range(len(x)-1): if x[i] == x[i+1]: ok = False break if ok: answer.add(x) print(len(answer))
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
완탐-원복-그래프 정점 탐색 코드 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. #include<bits/stdc++.h> using namespace std; int visited[4]; vector<int> adj[4]; //** vector<int> v; void print(){ for(auto i:v)cout<<i<<" "; cout<<"\n"; } void go(int from){ visited[from]=1; // 색칠하려고 했는데, 만약 // 사이즈 체크는 겉에서 말고, 들어오고 나서 하는듯 // 1. 기저 조건 if(v.size()==3){ print(); v.pop_back(); int rear=v.back(); go(rear); } // 2. for(auto i:adj[from]){ if(visited[i])continue; v.push_back(i); go(i); } } int main() { // 양방향 간선을 가정한다 adj[0].push_back(1); adj[1].push_back(0); adj[1].push_back(2); adj[1].push_back(3); adj[2].push_back(1); adj[3].push_back(1); v.push_back(0); go(0); } 이건 정답 코드를 보기 전에 제가 작성한 코드인데 어떤 문제점이 존재하는지 알 수 있을까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 맞왜틀 질문입니다
안녕하세요, 1213번(1-K번) 맞왜틀 질문이 있어 질문 올립니다.마땅한 반례를 제 시간에 떠올리지 못해, 반례에 대한 힌트를 얻을 수 있을까 하여 질문 드립니다. 코드는 아래와 같습니다.http://boj.kr/556e9aa7a033414a80ac86819811d8a7입력된 string의 각 알파벳을 Key, 각 알파벳 개수를 value로 하는 map을 이용하여 풀어보려 했습니다.입력된 string의 각 알파벳 및 알파벳 개수를 _nr_char이라는 map에 저장한 후,_nr_char의 value가 홀수인 것(_odd_nr로 count합니다)이 2개 이상이면 I'm Sorry Hansoo를 출력하게 했고,홀수인 것이 1개라면 29번 라인으로,홀수인 것이 없다면 56번 라인으로 분기하여 처리합니다. 29번 라인은 _nr_char에 저장된 알파벳을 output2란 string에 차례대로 저장한 후,홀수 알파벳을 output2에 마지막으로 push_back으로 저장합니다.이후 output2를 대칭복사한 output를 출력합니다. 56번 라인은 _nr_char에 저장된 알파벳을 output2란 string에 차례대로 저장한 후,output2를 대칭복사한 output를 출력합니다. string을 다루는 부분이 다소 정돈되지 못하여 이해가 어려우실 수 있을 것 같습니다. 양해 부탁드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
a.cpp로 바꾸고 명령어 실행해도 안되네요ㅠ
-
미해결김영한의 실전 자바 - 중급 2편
LinkedHashSet 수업
LinkedHashSet 을 수업중에 HashSet 처럼 자세히 다룬 적이 있나요? 아무리봐도 못 찾겠어서요! 왜 LinkedHashSet 이 입력한 데이터대로 출력하는지 코드를 통해 이해를 하고 싶습니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
안녕하세요. 강의 잘 보고 있습니다. 노션에 코멘트
안녕하세요. 알고리즘 종결 급 강의 잘 보고 있습니다.그러나 강의를 보는동안 해당 강의의 노션 페이지에 comment가 보이지 않는것 같습니다. 강의에서는 comment가 정상적으로 있는것 같은데 다른 페이지에는 comment가 보이는데 해당 페이지에서만 안보이네요.강사님의 소중한 자료라 풀 스크린은 올리지 않겟습니다.오른쪽에 comment가 없습니다 ㅠㅠ
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
최적의 개발환경(Sublime Text3) 설치(for windows) 영상부터 꿀팁 전까지 강의가 재생이 안되고 검은 화면만 보입니다.
최적의 개발환경(Sublime Text3) 설치(for windows) 영상부터 꿀팁 전까지 강의가 재생이 안되고 검은 화면만 보입니다.아래 강좌도 검은화면만 보이고 play가 안됩니다.코딩테스트에 필요한 자료구조 총정리 - Python 중간중간 play가 안되는데 어떻게 된건가요???
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
질문이 있습니다.
http://boj.kr/591d5d47a8284b3ea0f2cc2424f2796a저는 이렇게 풀었는데... 이번에도 역시 반례가.... 모르겠습니다. ㅠㅠ 혹시 시간 괜찮으시면 답변하나 부탁드려도 될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 1213 펠린드롬 질문있습니다.
http://boj.kr/d01d9b144442469eae778012296cc3e1해당 코드가 반례가 뭔지 도저히 모르겠습니다.번거로우시겠지만 한번 부탁드려도 될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 1213 문제 질문
안녕하세요 큰돌님! 강의 잘 듣고 있습니다. 저는 map을 이용하여 풀이를 진행하였는데결과를 배열의 앞뒤로 붙이는 식으로 진행하였습니다. 예제 케이스 같은 경우에는 잘 동작하는데, 실패가 계속 뜹니다.. ㅠhttp://boj.kr/0d0a5bcd94d347e1889351512f3bee6b혼자 힘으로는 어느 부분이 틀린건지 찾기가 쉽지 않네요.. ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
속도 관련 질문
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);랑ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);가 아예 동일할까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 질문있습니다.
왜 시간복잡도가 O(N * (N + M)) 이해가 되지 않습니다.그리고 최대시간복잡도가 10억인데 그냥 저 시간복잡도로 풀어도 왜 풀리는걸까요..? 보통 1억이 제한으로 생각하라고 아는데 이건 그냥 케바케인건가요..? 시험에서 일단은 무작정 기본으로 풀고 안되면 다른 방법을 생각해야되는걸까요.. 맨처음에 어떻게 접근하고 시간을 줄일 수 있는지 궁금합니다ㅠ
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
이 문제 bfs로 해도 상관없지않나여?
이 문제 bfs로 해도 상관없지않나여?dfs랑 차이가 있나여??정확히 언제 dfs로 풀고 언제 bfs로 풀어야하는지 모르겟습니다
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-A, bfs dfs 로직에 대한 질문
안녕하세요, 선생님. 이번 문제와 bfs, dfs 전반적 로직 관련해서 질문있습니다!!일단 이번 문제 정답 코드는 다음과 같습니다.http://boj.kr/f3c01a8b5af34478acc8344f21094f9a크게 바뀐거 없이, continue 조건문에서 범위체크하는 조건을 한번 빼봤습니다. 그런데도 정답에는 문제가 없더라구요.bfs든 dfs든 시작점에서 시작해서 상 우 하 좌 순으로 돌면서 탐색을 진행할텐데, 항상 경우에 따라 이차원배열의 모서리부근에서는 out of bound위험이 있고,이걸 그냥 복잡하게 고민안하고, 위험을 최소화 하기 위해서!bound -> continue 조건을 깔고 들어가는걸로 이해하고있습니다. 그런데, 위와같은 코드의 경우에는, 조건을 안걸면 분명히(-1, 0) 다시말해 out of bound 오류가 발생해야 할거같은데, 정답처리되는 이유를 잘 모르겠습니다. +) 또한, 강의중에 꼭 범위체크 뒤에 ||로 map에서 0이면 continue를 걸어야 한다고 하셨는데,이 이유도 왜 그런지 잘 모르겠습니다. 저희가 항상 시작할 때,map 전체를 0으로 초기화.조건에 맞게 map만들기.dfs/bfs이런식으로 진행되는데, 범위를 벗어난 지역은 어차피 visited도 false, 맵에도 0으로 표시되는게 보장될텐데,순서를 바꾼다고 해서 문제가 발생하는 일이 일어나나요?=> 이게 범위 관련 이슈때문에 범위를 맨 앞으로 빼야할것 같다는 생각이 들었습니다... 두번째로, bfs dfs 구현상 질문입니다.문제들의 경우에 따라서, if ~~ continue;if ~~ continue를 두번씩 사용하시는 경우를 봤습니다.(이번문제도 그렇습니다)이건 continue의 특성상, 아래라인에 else if를 안걸어도(컴파일러가 알아서 해줄지는 모르겠지만)else if를 거는듯한 최적화의 효과를 얻을 수 있겠다고 보이긴 합니다. 그런데, 저런식으로 continue문을 여러줄에 걸쳐서 쓴다는건,if ~~~ continue; (1조건)if ~~~ continue; (2조건)이렇게 1조건으로 필터링 하고, 1조건에 안걸리는 (여집합) 대상들에 대해 2차적인 필터를 하는걸로 생각이 드는데,"이제부터 항상 continue관련 조건은 다 ||로 엮어서 한 if문으로 처리한다" 라고 일반화하고 진행해도 괜찮을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-N 질문있습니다.
http://boj.kr/907e9f4775da48d8bb4c13e5d16d0c21결국 그럼 중앙이 루트좌우 나눠서 그곳의 중앙이 또 parent 이걸 무한히 반복한다고 생각햇고 BFS를 레벨별로 묶어서 처음에는 root를그다음에는 root에 연결된 자식을그 다음에는 그것에 연결된 자식들을 출력하는 방식으로 풀었습니다. 하지만 출력 초과가 나와서 어떤 문제가 있는지 궁금합니다.
-
미해결김영한의 실전 자바 - 중급 2편
<> 유무
MyLinkedListV3 stringList = new MyLinkedListV3<>();에서는 <> 가 있어야 하는데 왜 MyLinkedListV3 stringList = new MyLinkedListV3[CAPACITY]; 에서는 <> 를 쓰면 안되는지 궁금합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제 번호를 어디서 찾나요?
다른 강의들은 시작할때 백준 몇번인지 알려주 셨는데 이번 강의는 없는 것 같아서요. 각 강의가 몇번 문제인지 작성된 곳이 있나요?