묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨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군데 합격 비법, 2025 코딩테스트 필수 알고리즘
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군데 합격 비법, 2025 코딩테스트 필수 알고리즘
공간복잡도 질문입니다!
공간복잡도가 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부터 순회하였습니다!!
-
해결됨카카오 코테 6주 합격! 실전 파이썬 코딩테스트
트리 - 목표문제 11725 메모리 초과
안녕하세요트리 목표 문제 11725 예제를 백준에서 돌렸을때 메모리 초과가 발생합니다. 혹시 메모리 초과가 나지 않게 푸는 방법은 없을까요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
6번 관련 채점오류입니다
#include <iostream>using namespace std;int main(){ char a[100]; int i; int j; int num = 0; int count = 0; cin >> a; for (i = 0; a[i] != '\0';i++) { if (a[i] >= '1' && a[i] <= '9') { num = 10*num + (a[i]-'0'); } } for (j = 1 ; j <= num;j++) { if (num % j == 0) { count = count + 1; } } cout << num << endl << count <<endl; return 0;}다음과 같은 채점 20점이 나오는데 무슨 오류인지 모르겠습니다 로직은 제대로 구현한것 같습니다
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
제가 작성한 코드에서 간단한 질문이 있습니다.
public List<String> solution(int n, String[] str) { List<String> answer = new ArrayList<>(); for (String s : str) { char[] c = s.toCharArray(); int lt = 0; int rt = c.length - 1; while(lt < rt) { char temp = c[lt]; c[lt] = c[rt]; c[rt] = temp; lt += 1; rt -= 1; } answer.add(new String(c)); } return answer; }제가 작성한 코드입니다. 1)강사님은String temp = String.valueOf(c);answer.add(temp);이런 식으로 String.valueOf()를 통해 char 배열을 String으로 변환하셨지만, 저는 그냥answer.add(new String(c));그냥 이렇게 String 생성자를 사용했습니다.정답 처리는 됐는데, 혹시 이런 식의 코드가 지금 문제 혹은 나중에 문제를 풀 때 안 좋은 점이 있을까요? 2)저는 습관적으로List<String> list = new ArrayList<>();이런 식으로 부모 타입으로 주로 선언하는데,혹시 ArrayList<String> list = new ArrayList<>();이런 식으로 구체적인 타입으로 선언해야만 문제를 푸는 경우도 나중에 나올까요?코딩 테스트에선 부모 타입보단 구체적인 타입으로 쓰는 습관을 가져야 하는지 궁금합니다. 강의 잘 듣고 있습니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-K 시간초과 질문
안녕하세요, 선생님. 새해복 많이 받으시길 바랍니다. 3-K(#3179, 백조의 호수) 문제를 강의내용 기반으로 혼자 짜보았는데 2%채점 중에 항상 시간초과가 발생하여 질문 드립니다. 코드는 아래 링크와 같습니다.http://boj.kr/9a423cb3ee32415a8e66d7d1516881fe 기탐색한 큐를 재탐색하지 않도록 q.size가 끝날 때마다 q를 tempQ로 교체하도록 코드는 수정하였으나, 어디선가 불필요한 중복탐색이 발생하는 것으로 예상됩니다.다만, 저 혼자서는 해당 중복탐색 부분을 발견 못하여 도움을 요청 드립니다... 감사합니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 불! 문제 반례 질문
안녕하세요, 선생님. 새해복 많이 받으시길 바랍니다. #4179불! 문제에 대해, 아래 링크와 같이 코드를 짜봤습니다.(강의에서 설명해주신 반례(F가 없는 경우)를 처리하지 못하는 부분은 선생님 코드를 참고하여 수정을 해봤습니다.)http://boj.kr/a026e22915944cc9b8bfd1b8a9fd9905 지훈이에 대해 j_bfs 함수로 탈출가능한 경로를 탐색하여 j_bfs_visited에 거리값을 기록하고,불에 대해서도 f_bfs 함수로 별도로 경로를 탐색하여 f_bfs_visited에 거리값을 기록한 다음,마지막에 compare_bfs 함수에서 j_bfs_visited와 f_bfs_visited를 비교하는 조건을 추가하여, 탈출 가능한지 탐색하는 방식으로 코드를 짜보려 했습니다. 허나, 틀렸다고 결과(채점중11%에서 틀렸다고 판정됩니다.)가 나오네요... 나름대로 이것저것 경우를 생각하며 반례를 찾고 있는데 쉽지가 않아 도움을 요청 드립니다. 지훈이와 불에 대해 각각 BFS를 한 후, visited를 비교한다는 점에서 선생님 코드와 유사한 방식으로 풀릴 것이라 생각했는데, 미처 생각하지 못한 오류가 제 코드에 있는 것 같습니다. 혹시 제 코드에서 논리적으로 의심되는 바를 짚어주시면 감사드리겠습니다.