묻고 답해요
150만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
순위 정보를
불러오고 있어요
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
강의 내용 중 백트래킹 존재 여부
안녕하세요.실제로 코딩테스트는 자바로 준비하고 있으나, 강의에서 문제해결력을 학습하고 싶어서 강의를 수강하게 된 코테 입문자입니다.강의를 처음부터 듣지 않고 , 목차에 따라 필요한 내용을 듣고 있는 와중에 궁금증이 생겨 질문을 남깁니다.강의 내역 중 백트래킹에 관한 제목이 없는데, 강의에서는 다루지 않는건가요?
-
미해결김영한의 실전 자바 - 중급 2편
현재 자바가 정렬 알고리즘을 사용하는 기준 질문입니다
현재 자바는 데이터가 작을 때(32개 이하) 듀얼 피벗 퀵소트를 사용하고, 32개를 초과할 때 팀 소트를 사용한다고 말씀하셨는데,데이터 개수로 정렬 알고리즘이 정해지는게 아니라 데이터 타입으로 정해지는거 아닌가요?
-
해결됨김영한의 실전 자바 - 중급 2편
[리뷰] 잘 들었습니다!
40% 정도 들었을 때 리뷰를 이미 남겨버려서 이후에 추가로 남길 수는 없는 것 같아서 아쉬운대로 여기에라도 남깁니다.개발자의 길을 걷기로 정한 지 얼마 지나지 않았을 때, 파이썬이나 C 등을 배우고 나서 항상 아쉬웠던 부분이 "이 다음 스텝을 밟으려면 뭘 해야 되는 거지?"라는 막막함에 쉽사리 다음 스텝으로 가지 못하고, 그대로 다른 개념들을 배우러 가게 되어서 어느정도 배웠던 개념들이 꽤나 많이 사라져 버리는 경험을 했을 때입니다(ex. 파이썬 기초 책을 완독하고, 다음에 중급 단계를 배우고 싶은데, 뭘 선택해야 하지?).그런데 영한님은 정말 탄탄하게 로드맵을 정해 주셔서 "내가 한번 배운 기초 지식이 무의미하게 희석되지 않겠구나, 결국 다음 강의에 도움이 되는구나"하는 믿음을 가진 채로 듣다 보니 열정도 더 생깁니다.마지막 카드 게임 문제를 풀고난 뒤에 영한님의 풀이와 비교했을 때도 너무 재미있었습니다. "이렇게 해야 더 객체지향적이구나", "ENUM을 여기서 사용할 수가 있구나" 등등 내 코드보다 더 개선된 코드를 보면 그 수준까지 도달하고 싶은 열망에 더욱 공부 의욕도 샘솟네요.이제 저는 미리 결제해 둔 고급1편과 스프링 입문을 병행하며 듣고, 그 뒤로는 아마 고급 2편과 스프링 로드맵을 따라가지 않을까 싶습니다. 또한 나온 지 1년도 채 되지 않은 강의들이라 그런지 고급 자바편의 리뷰 수가 상대적으로 적은 것을 보면 뭔가 제 마음도 아프고, "영한님이 적은 리뷰 수에 의욕이 저하되면 안 될텐데"하는 생각이 들기도 합니다.그 덕분(?)인지 "아 나는 꼭 고급편 듣고 리뷰를 야무지게 남겨야지"라는 저만의 목표가 생기기도 하네요.저는 비록 학생에 불과하지만, 본인이 충분히 알고 있는 개념이라고 하더라도 그것들을 체계적이고, 오류없이 누군가에게 전달하려고 한다면 강의시간의 수 배만큼의 시간과 노력이 필요함을 잘 알고 있습니다.저도 가끔 무언가를 남에게 가르쳐주려고 할 때 초반에는 정말 탄탄한 순서와 검증된 자료들만으로 준비하면서 계획을 세우다가, 어느 순간 그 과정이 너무 힘들어서 헤이해지는 경우가 참 많았거든요.결국 하고 싶은 말은 스프링에 이어 그 기초가 되는 자바까지 이렇게 탄탄하게 준비해 주시니 그걸 듣는 저로써는 너무나 감사할 따름입니다. 영한님의 덕을 너무나도 잘 보고 있는 인간 1명이 있다는 사실에 조금이나마 강의 준비하시는 데에 도움이 되셨으면 합니다. 파이팅!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-G 2294번 재귀 풀이 관련하여 질문드립니다.
제가 이해한 방식이 맞는지 확인받고자 질문드립니다! 혹시 이해에 잘못된 부분이 있다면 알려주시면 감사하겠습니다 ㅎㅎ우선 제 재귀 풀이는 다음과 같습니다. 풀이 1. 재귀 내부에서, 전체 코인에 대한 반복문을 돈다(vis배열 사용X)https://www.acmicpc.net/source/89158559풀이 2. 재귀 내부에서, 중복 조합을 뽑듯이 이전에 사용한 코인을 시작점으로 하여 코인에 대한 반복문을 돈다(vis배열 사용O)https://www.acmicpc.net/source/89531232 그리고 제가 헷갈렸던 부분과 그에 대해 스스로 이해한 내용은 다음과 같습니다! Q. 재귀로 풀 때에 dp의 상태값으로 sum이 충분한 이유A. sum은 어떤 코인을 사용하느냐에 따라 무작위로 호출되지만, 매개변수에 sum을 포함하며 함수를 매개변수가 k가 될 때까지 전진해나가며 그 sum에 대해 가능한 모든 작은 부분에 대한 재귀(제 코드 로직상 sum+1 부터 k 를 만드는 가능한 재귀)가 호출되기 때문에 다른 상태값이 아닌 sum 하나로 dp를 처리할 수 있는것이다.다만, dp의 개념 상 자신보다 작은 부분합에 대한 함수를 호출하는 것이 더 직관적으로 와닿기 때문에, 함수를 호출할때 매개변수를 0으로 호출하는 것 보다 k 로 호출하는 것이 논리와 잘 맞는다.( 현재 sum을 만들 때 필요한 최소 동전개수를 받아와서 sum에서 사용한다고 직관적인 이해 가능.https://www.acmicpc.net/source/89531844이 풀이처럼 풀이1 의 코드에서 함수 호출과 기저조건을 반대로 바꾼 것을 의미함) Q. vis배열을 사용하지 않는것과 사용하는 것이 둘 다 맞다고 통과되는 이유는?A. vis 배열을 사용하지 않으면 말그대로 중복 순열을 구하는 것 같이 보이지만 사실 개수가 아닌 sum을 기준(기저조건)으로 함수를 return해주고 있기때문에, 코인을 넣는 순서에 따라 (큰 코인을 먼저 사용하면 필요한 코인 개수가 더 줄어들 수 있음) 사실 조합의 관점으로 봐도 다른 조합이 만들어진다. (순서만 바뀐 같은 조합이 만들어지는 경우도 있긴 하다)vis 배열을 사용하면 위에서 "순서만 바뀐 같은 조합이 만들어지는 경우" 를 제외시키고 (ex.112 211과 같은 경우) 서로 다른 중복조합을 만드는 것이기 때문에 vis배열을 사용하지 않는 것 보다 조금 더 효율적이다.그치만 결과는 둘다 같게 나온다. 이렇게 2개의 질문에 대해 제가 이해한 내용이 맞을까요? 감사합니다!
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
제가 공부하는 방법이 괜찮은지 궁금합니다
안녕하세요, 강의를 듣고 계신 여러분!여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요!강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지를 명확히 제시해 주시면 답변에 도움이 됩니다!자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트섹션 2 재귀함수 이해하기 문제 풀이 백준 4779 칸토어 집합자신은 어떻게 이해했는지먼저 칸토어 집합의 원리? 구성을 이해해 보려함 이후 이것을 수식으로 바꿔 보고 그것을 재귀함수 형태로 바꿔 보려 함강사님께서 풀어 보고 오라고 하셨는데, 일단 시도는 하였으나 설계 자체가 잘 되지 않고, 챗 gpt에서 제 코드에서 설계나 풀이의 문제가 뭐냐고 물어봤는데 아예 접근부터 잘못되었다고 생각됨어떤 부분이 궁금한지 원래 자바로 공부하다가 파이썬이 코테에 유리하다는 것을 느끼고 바꿨더니 문법 문제가 생김문제를 풀 때 그때그때 문법 검색해 보고 블로그에 정리하는 식으로 공부할지 or 그냥 파이썬 문법 강의까지만 듣고 올지실버 문제가 아직 설계부터 어렵고, 수학 문제가 나오면 어버버거리는데, 이걸 문제를 다 못 풀어 봤어도 혼자 30분 정도 접근해 보고, gpt에 물어봐서 나의 문제점을 이해하고 문제 풀이 강의를 듣는 식으로 해도 되는 건지? 브론즈 같은 경우엔 일단 풀이가 깔끔하지 않더라도, 문제가 풀려서 풀고 강의를 들으면 됐었는데, 실버 문제로 오니까 아예 설계부터 못하는 것 같아서 공부를 어떻게 해야 하는 건지 모르겠음
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - S, 맞왜틀
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. https://www.acmicpc.net/source/89525813
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
다른 질문과 답변을 보고 질문드립니다.
https://www.inflearn.com/courses/lecture?courseId=326750&unitId=72711&tab=QnA&category=questionDetail&q=229953 저도 이 글처럼 lt와 rt로도 풀었었는데,이 코드가 reverse()를 사용하는 것보다 효율적이라 하셨는데 어떤 면에서 효율적인지 궁금합니다.
-
해결됨독하게 C를 배운 사람을 위한 선형 자료구조
인덱스정렬 강의, 04_ListAndIndex질문드립니다.
안녕하세요 강사님인덱스정렬 강의 예제에서 RecalcListCount()라는 함수에 대해 질문드립니다.unsigned int RecalcListCount(void) { unsigned int cnt = 0; USERDATA* pTmp = g_HeadNode.pNext; while (pTmp != &g_TailNode) { ++cnt; pTmp = pTmp->pNext; } return g_listCount; }이 코드에서 cnt로 추가된 자료의 수는 세었지만 이것이 전역 스태틱 변수 g_listCount에 저장되지 않는 거 같는데 이렇게 되어 있는 것이 맞는 것인지 질문드립니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-C 인구이동 코드 질문입니다!
안녕하세요! 큰돌님!bfs로 visited 배열에 저장하는 값을 바꿔가면서 연합 체크 후 갱신하는 방법으로 풀이해보았습니다.주어진 테스트 케이스는 잘 나오는데 채점에서 계속 틀립니다.고민해보았지만 잘 해결되지 않아 질문 남깁니다!새해 복 많이 받으세요! :)https://www.acmicpc.net/source/89455017
-
해결됨38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
1-7. 4:30 에서 N*N이 아닌이유가 뭔가요?
1-7. 4:30 에서 N*N이 아닌이유가 뭔가요? 갑자기 26을 상수취급하는 이유를 모르겠어요.. 1-6에서는 N*N이었던 것 같은데요... 1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요?어떤 알고리즘을 학습하고 계신가요?여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
강의에 대해 질문있습니다.
안녕하세요 프론트엔드 개발자로 취업을 준비중입니다. 코딩테스트가 어렵고 또 이 부분에서 자주 떨어져서 강의를 찾다가 결제를 하게 되었는데요 우선 2021년도 Best라고 되어있는데 지금 봐도 무방할까요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-H 시간초과 질문
http://boj.kr/e286a9db4cc4444a80c4d6731bb84466이 문제의 경우 4가지 단계로 나눠서 풀었습니다입력받을 숫자의갯수와 며칠 연속으로 받을지 정하는 수를 입력 받기입력 받을 숫자만큼 숫자 받기입력한 수가 3이라면 1~3, 2~4 이러한 방식으로 온도의 합 구하기내림차순으로 정렬 후 첫번째 요소 반환 (최댓값 반환) 위와 단계로 풀어보니 시간 초과가 발생했습니다. 어떻게 시간복잡도를 최적화 할지 감이 잘 안와서 질문 드립니다! 제가 최근에 알고리즘 공부를 시작해서 아직 시간복잡도 줄이기, 출력초과, 런타임에러 같은 오류에 익숙하지 않습니다. 이러한 오류를 검출하는 방법에는 어떤 것이 궁금합니다 그리고 실버 3까지는 풀 수 있는 문제가 많은데 실버 2로 올라가는 순간 도식화까지는 가능한데 이 도식화 한 것을 어떻게 코드로 표현해 풀 수 있는지 감이 안 잡히는 문제들이 많습니다. 이런 문제를 만나면 보통 정답 코드를 보는 편인데 큰돌님 강의 외에는 해설이 없다보니 어떻게 공부해야할지 잘 모르겠습니다ㅠㅠ 이 부분도 어떻게 공부하면 좋을까요??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 질문드립니다
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.while 한번마다 이중반복문으로 bfs 시작점을 찾았기 때문에 시간초과가 난다고 생각했습니다. 그런데 어느정도로 시간이 걸리는지 특정하지 못하겠습니다. 이중반복문이어도 x가 있을 때 바로 go를 실행하니 O(NM)이라 할 수 있나요? 시간복잡도 측면에서 어떻게 되는지 자세하게 설명 부탁드립니다 ㅜㅜ #include <iostream> #include <vector> #include <queue> using namespace std; int N, M; vector<vector<char>> graph; vector<vector<bool>> visited; vector<pair<int, int>> ice; bool ok = false; int x1, y1, x2, y2; int cnt = 0; int dx[4] = {0, 0, -1, 1}; int dy[4] = {1, -1, 0, 0}; void reachable(int x, int y) { queue<pair<int, int>> q; vector<vector<bool>> check(N, vector<bool>(M, false)); check[x][y] = true; q.push({x, y}); while (!q.empty()) { auto [cx, cy] = q.front(); q.pop(); for (int i = 0; i < 4; i++) { int nx = cx + dx[i]; int ny = cy + dy[i]; if (nx < 0 || nx >= N || ny < 0 || ny >= M) continue; if (check[nx][ny]) continue; if (graph[nx][ny] == 'L') { ok = true; return; // 다른 백조를 찾으면 즉시 반환 } if (graph[nx][ny] != 'X') { q.push({nx, ny}); check[nx][ny] = true; } } } } void go(int x, int y) { if (graph[x][y] == 'X') { ice.push_back({x, y}); return; } visited[x][y] = true; for (int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; if (nx < 0 || nx >= N || ny < 0 || ny >= M) continue; if (visited[nx][ny]) continue; go(nx, ny); } } int main() { cin >> N >> M; graph.assign(N, vector<char>(M)); visited.assign(N, vector<bool>(M, false)); int l_count = 0; for (int i = 0; i < N; i++) { string s; cin >> s; for (int j = 0; j < M; j++) { graph[i][j] = s[j]; if (graph[i][j] == 'L') { if (l_count == 0) { x1 = i; y1 = j; l_count++; } else { x2 = i; y2 = j; } } } } int ret = 0; while (true) { reachable(x1, y1); if (ok) break; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { if (!visited[i][j] && graph[i][j] != 'X') { cnt++; go(i, j); } } } // 빙판 녹이기 for (const auto& pos : ice) { graph[pos.first][pos.second] = '.'; } ice.clear(); ret++; } cout << ret << endl; cout << cnt << endl; return 0; }
-
해결됨38군데 합격 비법, 2024 코딩테스트 필수 알고리즘
공간복잡도 질문입니다!
공간복잡도가 N인 경우는 큰 차이가 없다고 이해했습니다.예제 코드에서도 29, 30 처럼 N인 경우를 확인하였습니다.그렇다면 공간복잡도가 N^2인 경우는 어떤 예제 코드가 될 수 있을까요??시간복잡도는 이해가 갔는데(ex. 이중for문) 공간복잡도가 N^2인 경우는 어떻게 되는지 궁금합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-K 질문있습니다.
안녕하세요. 제가 푼 풀이도 괜찮은 풀이인지 궁금하여 질문 드립니다.http://boj.kr/cbb841d4775441b4a884e1b8227627ee감사합니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
6-F 문제 드래곤 전투를 while문으로 고쳐보고 싶습니다.
안녕하세요 큰돌님!! 강의 수강중에 궁금증이 있어 질문 드립니다.이분탐색을 하다가 체크하는 과정 중 드래곤과 플레이어가 전투중일때if(monsterHp % currentAttack ==0) { currentHp -= (monsterHp/currentAttack -1)*monsterAttack; } else { currentHp -= (monsterHp/currentAttack)*monsterAttack; } if(currentHp <=0) { return false; }이렇게 구현 하였을 경우 맞았다고 나옵니다.하지만 while(true) { monsterHp -= currentAttack; if(monsterHp<=0) { break; } currentHp -= monsterAttack; if(currentHp<=0) { return false; } }이렇게 while문으로 구현하였을 경우 시간초과가 나오면 이해하지만 백준 정답 사이트에서 "틀렸습니다"라고 나옵니다. 혹시 제가 짠 while문에서 처리하지 못한 예외처리가 있을까요??
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
java로 포팅
큰돌님 C++강의를 수강하며 알고리즘 문제를 풀어나가고 있는데 언어를 java로 포팅하기로 해서 학습법 관련해서 질문하고 싶습니다!기존에 수강하며 풀었던 문제들을 Java로 다시 풀어보면서 복습겸 문법을 체화하고 강의 목록에 있는 문제들을 아이디어 위주로 참고하고 자바로 풀어나가며 학습하는 방법이 어떨지 궁금합니다. 다른 좋은 방법이 있다면 혹시 추천해주실 수 있을까요?감사합니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
교안 이차원 배열 회전 질문드립니다.
교안 코드 중, resize()하는 코드가 있던데, 저의 코드는 resize()를 안해도 돌아가던데, resize()가 꼭 필요한가요?key = temp는 key 변수에다가 temp의 주소값을 할당하므로 resize()가 필요없다고 생각합니다. #include<bits/stdc++.h> using namespace std; typedef long long ll; vector<vector<int>> v = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; void left_90_rotate(vector<vector<int>> &key){ int n = key[0].size(); int m = key.size(); vector<vector<int>> temp(n, vector<int>(m,0)); for (int i = 0; i < n; i++){ for (int j = 0; j < m; j++){ temp[i][j] = key[j][i]; } } key = temp; } void rotate_90_right(vector<vector<int>> &key) { int n = key[0].size(); int m = key.size(); vector<vector<int>> temp(n, vector<int>(m,0)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { temp[i][j] = key[m-j-1][i]; } } key = temp; } void print_v(){ for (vector<int> tv : v){ for (int i : tv){ cout << i << " "; } cout << "\n"; } cout << "--------------------\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); print_v(); left_90_rotate(v); print_v(); rotate_90_right(v); print_v(); }
-
해결됨김영한의 실전 자바 - 중급 2편
[강의록 오타] 9. 컬렉션 프레임워크 - Map, Stack, Queue
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[강의록 오타]대상 강의록: 9. 컬렉션 프레임워크 - Map, Stack, Queue.pdf페이지: p.6 상단내용:(기존) Map의 값 목록을 중복을 허용한다.(수정) Map의 값 목록은 중복을 허용한다.영상 잘 보고 있습니다. 너무 재밌어요 영한님!
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
19번 질문있습니다
#include <iostream>using namespace std;int main(){ int n; int a[200]; int i; int j; int cnt = 0; bool flag; cin >> n; for (i = 0;i < n;i++) { cin >> a[i]; } for (i = 0;i < n-1;i++) { flag = true; for (j = i + 1;j < n;j++) { if (a[i] < a[j]) { flag = false; break; } } if (flag == true) { cnt++; } } cout << cnt; return 0;}제가 짠 코드로 채점기 돌리니깐 5번에서 fail 뜨는데 어디서 오류가 났는지 모르겠습니다 ㅠ저는 인덱스 0부터 순회하였습니다!!
주간 인기글
순위 정보를
불러오고 있어요