묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결김영한의 실전 자바 - 중급 2편
6강 해시 충돌 구현
2:30 를 보면 영한님께서 해시 테이블에서 Linkedlist 를 전체 버킷의 컨테이너로 사용하셨는데, ArrayList 를 전체 버킷의 컨테이너로 사용해도 전혀 문제가 없지 않나요 ?따라서, 해시 테이블에서 ArrayList를 전체 버킷의 컨테이너로 사용하고, 각 버킷 내에서는 LinkedList를 사용해 충돌을 처리하는 방법도 괜찮지 않나요 ?
-
미해결김영한의 실전 자바 - 중급 2편
Comparable이 아닌 Comparator를 사용하는 경우
이 부분에서 '기본 정렬 외에 다른 정렬 방법을 사용해야 하는 경우'가 잘 이해가 되지 않는데요. 예를 들어, MyUser에서 age는 int형이라서 '<' 비교 연산이 가능하지만 id는 String이라 비교 연산을 할 수 없기 때문에 Comparable이 아닌 Comparator를 사용하는 건가요?'기본 정렬 외에 다른 정렬 방법을 사용해야 하는 경우'가 이러한 경우를 의미하는 건가요??만약 그렇다면 SortMain2에서 AscComparator, DescComparator를 Comparable이 아닌 Comparator로 구현한 이유가 무엇인가요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문있습니다.
http://boj.kr/027eca9de7df4d9ebd1326b9d1fde13b 저는 이런식으로 풀었습니다. 그런데 제가 틀린 문제는 복습을 하고 있는데 이렇게 큰돌님과 다르게 푼 문제가 있다면 그런 문제들도 복습을 해주는게 좋을까요? 아니면 그냥 맞았다면 넘어가는게 나을까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
dfs관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.dfs를 돌릴때 왼쪽부터 탐색하는 이유가 인접리스트를 구성할때 왼쪽의 노드값을 먼저 넣어줬기 때문이라고 추론을 해봤습니다. 그렇다면 인접리스트를 구성할때 순서를 달리하면 (예를 들어 1:: 3,2처럼) dfs가 제대로 작동을 못하지 않습니까? 그럼 인접리스트를 구성할때 어떤 로직에 입각해서 인접 리스트를 작성해야하나요.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 질문ㅇ드립니다
결국 메인 로직은 BFS를 돌려서 백조끼리 만날수있나 검사한다.얼음을 만나면 얼음 위치를 저장한다얼음을 지운다.얼음을 만나면 얼음위치를 저장한다.인거 같은데 queue를 2개쓰지 않고 그냥 temp 큐 한개만 얼음을 담는 용도로 사용해도 되지않나요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-C 질문있습니다 :)
안녕하세요 선생님 🙂 문제를 풀다가 정신이 나가버릴거 같은 느낌은 이 문제풀면서 처음 겪는거 같습니다.. 어떻게든 풀려고 하루종일 박치기를 해봐도 어질어질하네요..ㅠㅠ 인접행렬을 만들어주는거는 예전에 배웠던 적이 있기 때문에 무리없이 이해했습니다. for(int i = 1; i < (1 << n) - 1; i++) 모든 켜져있는 경우를 체크하려면 for(int i = 1; i <= (1 << n) - 1; i++)이 되어야하지 않나요? n이 6일 경우에, 111111을 빼고 111110까지만 체크하는 이유를 모르겠습니다. 이렇게 할 경우에 access violation이 뜨는데요, 도대체 뭘까요?? ㅠㅠ 비트가 켜져있는 모든 경우를 체크하여 켜져있을 경우에 comp배열에 1을 저장하고, 그 값이 dfs함수에서 두번째 파라미터와 같다면 재귀를 돌리고, 재귀를 돌린 값으로 누적을 시키신건 알겠습니다. 근데 이 comp배열이 어떤 아이디어로 생성된 배열인지 모르겠습니다.. 그동안 문제들을 풀면서 몇 번의 벽이 느껴졌었지만 항상 시간을 박으면서 극복해왔습니다. 근데 이 문제는 도저히 해결이 안될거 같은 벽처럼 느껴지네요.. 선생님의 도움이 절실히 필요합니다 흑흑..
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
Event Loop
Event Loop 함수에서 함수포인터 배열를 사용하여 Lookup 테이블 구조로 변경 하는 도중에 에러가 발생하여 질문 남깁니다! void (*EventFunc[EVENT_COUNT])(void) = { 0, AddNewUser, SearchByName, SearchByAge,PrintList, SearchByNameToRemove };위 코드와 같이 EVENT_COUNT 를 #define EVENT_COUNT 6 매크로로 정의 했을때 오류가 발생 합니다.void (*EventFunc[6])(void) = { 0, AddNewUser, SearchByName, SearchByAge,PrintList, SearchByNameToRemove };EVENT_COUNT를 매크로로 정의 하지 않고 6으로 하드코딩 할때는 컴파일이 잘되는데 서로 다른 결과가 나오는 이유가 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-I 질문있습니다
http://boj.kr/dd6737fde63945129d78f247d40f557d같은 로직으로 풀었습니다. 차이점하나는 강사님은 flag로 검사를 하였고저는 바로 turn을 출력하고 끝낸것인데 왜 제 방식이 틀렸는지 이해가 되지 않습니다.
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
시간초과를 자력으로 해결하지 못했습니다 😓
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의자신은 어떻게 이해했는지DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요?안녕하세요. 선생님.저번 설명과 조언 너무 감사합니다. 그,, 백준 2580 스도쿠에 관한 질문인데요,시간 초과를 해결하지 못하였는데,각각을 보면 그렇게까지 시간이 많이 들지는 않을 거 같다는 생각도 들구..재귀를 사용하지는 않았지만,어디서 시간이 많이 걸리는 지 분석이 안되어서요..선생님 도움이 필요해서 질문 남깁니다.. arr = [list(map(int, input().split())) for _ in range(9)] # 스도구 문제 배열 idxs = [] # 인덱스 쌍을 담는 배열 for i in range(9): for j in range(9): if not arr[i][j]: idxs.append((i,j)) def fillHori(y, x): # 가로 nums = 45 # 1~9까지의 합 for i in range(9): if x == i: continue # 자기 자신 탐색 제외 if arr[y][i] == 0: return 0 # 0이 또 있으면 채울 수 없음 nums -= arr[y][i] return nums def fillVerti(y, x): #세로 nums = 45 # 1~9까지의 합 for i in range(9): if y == i: continue # 자기 자신 탐색 제외 if arr[i][x] == 0: return 0 # 0이 또 있으면 채울 수 없음 nums -= arr[i][x] return nums def fillSquare(y, x): #사각형 nums = 45 # 1~9까지의 합 for i in range(y // 3 * 3, y // 3 * 3 + 3): for j in range(x // 3 * 3, x // 3 * 3 + 3): if y == i and x == j: continue # 자기 자신 탐색 제외 if arr[i][j] == 0: return 0 # 0이 또 있으면 채울 수 없음 nums -= arr[i][j] return nums def fillCrossDown(y, x): # 대각선(안씀) nums = 45 # 1~9까지의 합 for i in range(9): for j in range(9): if y == i and x == j: continue # 자기 자신 탐색 제외 if arr[i][j] == 0: return 0 # 0이 또 있으면 채울 수 없음 if y - x == j - i: nums -= arr[i][j] return nums def fillCrossUp(y, x): # 대각선(안씀) nums = 45 # 1~9까지의 합 for i in range(9): for j in range(9): if y == i and x == j: continue # 자기 자신 탐색 제외 if arr[i][j] == 0: return 0 # 0이 또 있으면 채울 수 없음 if y + x == j + i: nums -= arr[i][j] return nums while idxs: for i, j in idxs: n = fillHori(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillVerti(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillSquare(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillCrossUp(i, j) if n: arr[i][j] = n; idxs.remove((i,j)); continue n = fillCrossDown(i, j) if n: arr[i][j] = n; idxs.remove((i,j)) for a in arr: for i in a: print(i, end = ' ') print()
-
미해결김영한의 실전 자바 - 중급 2편
implement iterator 주석처리 해도 myArray는 배열 아닌가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]순회 2 -향상된 for문 1;18초에서 implememt를 주석 처리 하고 향상된 for문을 돌렸을 때 배열이거나 iterable이여야한다고 에러가 떴습니다 .근데 MyAraayMain에서 이미 myarray 는 new int [] {1.2.3.4}로 배열로 선언한거 아닌가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-i 문제 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 1-i에 1165 가 맞나요? 백준 홈페이지에서 1165 는 단어퍼즐이고 포켓몬 마스터는 9987번 으로 나와서 질문드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-B 질문있습니다 :)
안녕하세요 선생님 🙂이번 문제 진짜 어려운 문제인거 같더라구요;; ㅎㅎ 문제를 풀면서 몇가지 풀리지 않는 의문이 있어서 질문 드립니다. http://boj.kr/2f42a7b2bc644e2e8db2ab8729507b5d 선생님께서는 go함수의 here = n + 1인 경우에 함수를 리턴시키셨는데요, n = 3일 경우에 go(1)부터 시작하여 go(4)까지 재귀를 돌리면 총 8번의 go(4)를 사용합니다.하지만, go함수의 리턴시키는 조건이 here = n일 경우에는 go(3)까지 총 4번의 go(3)을 사용합니다. 입력 조건의 n이 3일 경우에 3번만 돌리면 된다고 생각하는데요, 경우의 수를 추가로 넣어주신 이유가 궁금합니다. 추가로, 뒷면이 위를 향하도록 놓인 동전의 개수를 2개보다 작게 만들 수 없다라는 조건이 있는데요, 이 처리를 안해도 되는 이유가 궁금합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
코드에 어떤 오류가 있는걸까요..?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.위 사진처럼 000과 001 로 이루어진 문자열을 atoi를 이용하여 변환 후 사용하였을 때 다음과 같이 출력되는 것을 보고 이를 사용해서 문제를 풀려고 시도하였고 코드는 다음과 같습니다.#include <bits/stdc++.h> using namespace std; //2870 - 수학 숙제 int n; string s; vector<int> v; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n; for(int i=0;i<n;i++){ string tmp=""; cin>>s; for(char c:s){ if(c>='a' && c<='z'){ if(tmp!=""){ int num = atoi(tmp.c_str()); v.push_back(num); tmp=""; } continue; } tmp+=c; } if( tmp!=""){ int num = atoi(tmp.c_str()); v.push_back(num); tmp=""; } } sort(v.begin(), v.end()); for(int i:v) cout<<i<<'\n'; return 0; }제가 사용한 로직은 문자열을 입력 받고 알파벳이 나오기 전까지 숫자를 tmp라는 string 변수 저장 후 알파벳이 나오면 해당 tmp를 atoi를 사용하여 integer로 변환하고 vector에 push하도록 하였습니다.따라서 해당 vector에는 integer 값으로 이루어져있기 때문에 기존의 sort 함수를 그대로 사용해도 된다고 생각했고 이를 토대로 코드를 작성하고 출력까지 진행하였습니다. 테스트 케이스들에 대해서는 전부 알맞게 출력되었고 제출을 하였는데 틀렸다고 출력됩니다. 어떤 부분에서 혹은 어떤 반례가 존재하여 해당 코드가 잘못되었는지 알 수 있을까요? 좋은 강의 항상 감사드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
개념 교안 파일 질문드립니다
안녕하세요, 큰돌님2주차 진행 중인 학생입니다. 좋은 강의 덕분에 즐겁게 코테 공부하고 있습니다!다름이 아니라, 개념 교안 pdf파일은 2주차까지 밖에 없는 건지 궁금합니다.아니면 해당 주차의 강의를 수강할 시 교안 파일을 다운 받을 수 있게 활성화되는 걸까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-I 런타임에러 확인
안녕하세요 강사님.제가 작성한 코드가 예제는 맞게 나오는데, 백준에 제출하면 런타임 에러가 나옵니다. 한 번 확인해 보시렵니까!?http://boj.kr/909851fccc5b446db825a1bb6d1df5fd감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-f 코드 질문드립니다!
http://boj.kr/173bd797559a4a5d88f48a6dee8c0d05요렇게 풀었는데 런타임 에러가 나서 이유가 궁금해서 질문드립니다!cout으로 디버깅해봤는데 위 코드에서 inputWord 는 길이가 출력되지만 rot13Word 는 0 으로 출력됩니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-I 맞왜틀 질문드려요
http://boj.kr/80c05cec3b4e4ca385865062da4cf15c 큰돌님과 코드가 똑같은데 제걸로 예제입력을 출력해보면5문제가 주어지면 문제에 답도 출력되고 다시 역방향출력도 한번 다시 합니다마치 if문실행하고 else문 실행하는거같습니다. 코드다른게 없는데 어디를 손대야할지 모르겠습니다. 이상합니다... 뭔가 이상한 착각을 하고있는듯합니다. .도와주세요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-O 질문있습니다.
http://boj.kr/1e34dc4ccb4044019708d4f7f89929e3 각문자열의 마지막 문자가 온점으로 끝나므로 위에 첨부한 코드처럼getline(cin, s, '.');이런식으로 한문장의 끝을 '.'로 받아서 끝냇는데 마지막에 종료가 되지 않습니다. 왜그럴까요..?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
DFS 종화는 방구쟁이라..
제 이름이 나오니 껄쩎지근하네요 ㅎㅎ
-
미해결김영한의 실전 자바 - 중급 2편
커리큘럼 목록체크
영상 볼때 옆에 툴바에 커리큘럼 누르면 동영상 목록뜨고 수업 들으면 자동으로 체크 되자나요. 이거 체크 해제 어떻게 하나요. 만약 체크해제 기능이 없으면 유저들을 위해서 만들어 주시면 좋을거 같아요