묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
answer 변수 사용 여부
선생님, 안녕하세요.answer 변수 선언하셨는데, 이유가 있을까요?사용을 안 하는 것 같아서요!
-
미해결실전 알고리즘 코딩테스트 문제풀이 100제 (by 하루코딩)
일치하는 경우에 둘다 하나씩인데 왜 e_index만 두번 ++하나요?
ㅈㄱㄴ입니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
DFS 에서 스택을 사용하는 이유
안녕하세요, 현재 DFS 관련하여 내용을 수강하고 있습니다. (39강. DFS & BFS) 깊이 탐색인 알고리즘인 DFS를 처음엔 재귀로 접근하셨다가 RecursionError의 이유로 스택을 사용하셨는데요, 스택을 생각하게 된 생각의 흐름(?)을 잡아보고싶어 질문을 드리게되었습니다.(나중에 코테 연습 때 대비가 될까하여 더 고민을 해보는 것인데, 시간대비 효율이 나지않는다면 말씀해주세요 ㅎㅎ) 일단 제가 이해한 흐름은 여기까지입니다.DFS는 깊이 우선 탐색깊이 파고들었다가 다시 나오고 반복 그래프의 끝까지 깊이 파고들었다가, 방문하지 않는 노드를 방문하기 위해 나중에 다시 돌아갈 "기준점"이 필요하게 될 것임그렇다면 이전에 어디까지 방문했는지 기록을 해놓아야함어떻게 해야 기록을 더 효율적으로 할 수 있을까?하지만 여기서 스택을 사용해야겠다고 생각이 들게 되는 이유를 찾고 싶습니다 ㅎㅎ 알고리즘을 잘하시는 분들 보시면 이런 부분은 큐를 써야겠고, 스택을 써야겠다 라고 바로 생각을 하시는데, 저로서는 왜 이게 바로 스택을 써야한다고 생각이 드는지 이해가 되질 않아서요 혹여 이전에 강의때 설명하신 부분이라면 죄송합니다..ㅎㅎ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 반례
안녕하세요 강사님. 궁금한부분이 반례부분이 잘 이해가 안됩니다. 만약 불이 없을 경우 fireCheck가 0으로 초기화 되는게 왜 안되는지 궁금합니다. 0으로 초기화할 경우에 if (fireVisited[sy][sx] <= jihunVisited[y][x] +1) continue;이부분에서 무조건 true가 되서 그런건가용??
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
#include <bits/stdc++.h> 관련 질문 있습니다
#include <bits/stdc++.h>안녕하세요 큰돌님 vscode에서 알고리즘 강의를 진행하고 싶은데 방법이 없을까요..?이것저것 찾아봤지만 제 파일구조와 맞는 설명이 없었습니다 ㅜ.ㅜ
-
해결됨코딩테스트 [ ALL IN ONE ]
노션 공유 부탁드립니다!
어제 노션 공유를 부탁드렸는데 아직 안와서 다시 공유 요청 드렸습니다 노션 공유 부탁드려요! 혹시 제가 잘못 요청해서 못 받은거라면 알려주세요
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2중 for문
2중 for문은 안된다고 하신거 아니었나요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
백트래킹 질문있습니다.
안녕하세요. 강사님.수강생 조돌이입니다. :) 강사님께서는 백트래킹 정의를 "완전탐색(Brute Force)과 가지치기(Pruning)를 결합한 방식으로, 모든 가능한 해를 찾는 과정에서 불필요한 탐색을 줄여준다." 라고 정의하시는데요. 원상복구 방식은 백트래킹 방식과 연관되지 않나요?예전에 백트래킹에 대해서 공부한 기억이 있는데, 강사님께서 말씀하시는 원상복구를 백트래킹이라고 이해하고 있었습니다.제가 잘못 이해하고 있는건지 알고 싶습니다.. _ _) 항상 좋은 강의 감사드립니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
삼성 싸피 (난이도 실버수준) 준비하려면 3주차까지면 충분할까요?
큰돌의터전님 혹시 단톡방 참여 못하나요?? 그리고 삼성 싸피 (난이도 실버수준) 준비하려면 3주차까지면 충분할까요...?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-B 2589 왜틀렸는지 모르겠습니다.
반복문을 통해서 해당 지역을 방문하지 않았으면 BFS를 실행BFS를 통해 해당 노드와 가장 멀리 떨어진 노드위치를 가져온다.가장 멀리 떨어진 노드 기준으로 다시 BFS 수행 그러면 해당 그래프에서 가장 멀리 떨어진 두 지점을 구할수 있게 코드를 작성했습니다.외부에서 중복 방문을 막기위해 visited 변수를 BFS에서 해당 노드들을 순회할때 ture로 설정해 외부 에서 접근하지 못하게 막고 내부에서는 cost를 통해 중복방문을 막도록 설계했습니다.가장 멀리 떨어진 두 지점을 구하는 로직을 푸는 DFS,BFS문제를 푼 기억이 있어 그걸 토대로 여기다가 응용을 했는데 막상 제출하니까 틀리네요. http://boj.kr/9542447ec9494e75935435c21eeda485
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
84.2-P 코드 관련 질문
안녕하세요 선생님해당 문제에 대해 선생님의 코드와 제가 스스로 풀어서 맞힌 코드에 대해 질문 있어 작성합니다.먼저 선생님 코드에서 선생님의 로직을 정리하면 아래와 같이 된다고 생각하는데 맞는지 여쭤봅니다.(선생님 코드 링크) http://boj.kr/2812582f10eb41dfa63761279266e42f /* 선생님 로직에서> !visited[][] && !a[][] => 안전영역 !visited[][] && a[][]==1 => 벽이 있어서 접근 불가 영역 (continue로 처리, 즉 벽이 있는 영역은 visited[][]가 1로 set될 수 없음) !visited[][] && a[][]==2 => 원래부터 바이러스가 있는 영역 (visited[][]==1로 set) visited[][] && !a[][] => 바이러스가 퍼지는 영역(visited[][]==1로 set) visited[][] && a[][]==1 => 이런 경우는 발생하지 않음 visited[][] && a[][]==2 => 원래부터 바이러스가 있는 영역인데 이미 방문한 영역(cotinue로 처리) */제가 스스로 풀어서 맞춘 코드에 대해 논리적으로 완벽한게 맞는지 코드 리뷰를 부탁드립니다.제가 생각했을 때 저는 visited 배열과 a배열을 사용하신 선생님과 달리 g배열 하나를 사용하여 g배열의 값(0,1,2)에 따라 각 영역을 구분하여 풀었는데요. 백준에서 채점한 결과 문제를 맞췄다고 나왔는데 혹 제가 불필요한 부분을 중복 체크하는 논리적인 오류가 있는지 헷갈려 선생님께 질문드립니다.(제 코드 링크) http://boj.kr/f2b1836ef32f4c1b8c06ad497201d99b제가 백준 제출시에는 주석을 다 빼고 코드를 붙여 넣어 코드 파악에 더 용이하도록 아래는 주석을 붙인 코드도 첨부합니다.감사합니다.#include <bits/stdc++.h> using namespace std; int n, m; // 세로, 가로 int safe_size; // 안전 영역 크기 int g[10][10]; vector<pair<int, int>> combi; const int dy[] = {-1, 0, 1, 0}; const int dx[] = {0, 1, 0, -1}; void virus_spread(int gp[][10], int a, int b){ for(int i=0; i<4; i++){ int ny = a + dy[i]; int nx = b + dx[i]; // graph 범위를 초과할 때 if(ny<0 || nx<0 || ny>=n || nx>=m) continue; // gp[ny][nx]==1 벽이거나 gp[ny][nx]==2 이미 바이러스가 있을 때 if(gp[ny][nx]) continue; // gp[ny][nx]==0 빈 칸 일때 gp[ny][nx] = 2; virus_spread(gp, ny, nx); } } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n >> m; for(int i=0; i<n; i++){ for(int j=0; j<m; j++){ cin >> g[i][j]; // 벽을 세울 수 있는 후보 좌표 따로 저장하기 if (!g[i][j]) combi.push_back({i, j}); } } size_t c = combi.size(); for(size_t i=0; i<c; i++){ for(size_t j=i+1; j<c; j++){ for(size_t k=j+1; k<c; k++){ // cout >> i >> " " >> j >> " " >> k >> "\n"; pair<int, int> p1 = combi[i]; pair<int, int> p2 = combi[j]; pair<int, int> p3 = combi[k]; // 3개의 벽 세우기 g[p1.first][p1.second] = 1; g[p2.first][p2.second] = 1; g[p3.first][p3.second] = 1; // 바이러스 퍼뜨리기 int dup_g[10][10]; copy(&g[0][0], &g[0][0]+100, &dup_g[0][0]); for(int a=0; a<n; a++){ for(int b=0; b<m; b++){ // 바이러스가 있는 칸이면 spread virus if(dup_g[a][b]==2) virus_spread(dup_g, a, b); } } // 안전영역크기 카운트 int count_safe=0; for(int a=0; a<n; a++){ for(int b=0; b<m; b++){ if(!dup_g[a][b]) count_safe++; } } // 최대안전영역크기 갱신 safe_size = max(safe_size, count_safe); // graph 초기화 g[p1.first][p1.second] = 0; g[p2.first][p2.second] = 0; g[p3.first][p3.second] = 0; } } } cout << safe_size << "\n"; return 0; }
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 질문입니다.
99785228번 소스 코드 혹시 이렇게 하는거는 어느 부분에서 안될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
컴파일 옵션에 -static-libgcc를 추가하는 이유
안녕하세요. Dev-C++에서컴파일 옵션에 -static-libgcc를 추가하는 이유가 궁금합니다. 감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
2-11. 임시반장정하기 (Runtime Error)
이미지와 같이 Runtime Error 발생하여, 검토 요청드립니다.import java.util.*; public class Main { private int solution (int i1, int[][] i2) { int r = 0; int rt = 0; for (int i = 0; i < i1; i++) { int t = 0; boolean[] s = new boolean[i1]; for (int j = 0; j < 5; j++) { for (int k = 0; k < i1; k++) { if (i2[i][j] == i2[k][j]) { s[k] = true; } } } for (boolean a: s) { if (a) { t++; } } if (t > rt) { r = i; rt = t; } } return r + 1; } public static void main(String[] args){ Scanner in = new Scanner(System.in); int input1 = in.nextInt(); int [][] input2 = new int[input1][input1]; for (int i = 0; i < input1; i++) { for (int j = 0; j < 5; j++) { input2[i][j] = in.nextInt(); } } System.out.println(new Main().solution(input1, input2)); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-C 질문 드립니다.
안녕하세요. 강사님 궁금한 게 있어서 질문드립니다. 이미 도착한 인덱스가 왜 최대값이 되는지를 이해가 되지 않습니다. 이미 도착했지만, 여러 곳을 순회하면서 방문할 수 있는 경우가 있다면 ,이때 해당 memo 는 갱신되어야 하는 게 아닌가요?? 아니면 빨간색 코드에서 이미 여러 경우의 수를 확인했다는 것을 증명하는 것인가요?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-S 1325 작성한 코드 왜 틀렸는지 모르겠습니다.
제가 작성한 코드와 선생님이 작성한 코드랑 비슷한데왜 제 코드는 틀렸다고 하는지 모르겠습니다. http://boj.kr/8f9af85823c7483e8a728da2825d7b24
-
미해결Do it! 알고리즘 코딩테스트 with C++
42. [세그먼트 트리 실전 문제] 구간 합 구하기3 (백준 2042)
안녕하세요.백준 2042 세그먼트 문제 답 코드 중에 이해안되는 부분이 있어서 질문 드립니다.-----------------------------------------------------int treeHeight = 0;int length = n;while (length != 0){ length /= 2; treeHeight++;}int treeSize = int(pow(2, treeHeight + 1));int leftNodeStartIdx = treeSize / 2;-----------------------------------------------------위의 코드가 잘 이해가 안됩니다treeSize가 16이 나오기 위해서는 5, 6, 7, 8이 해당됩니다근데 위의 코드로 결과를 구하게 된다면 5, 6, 7만 해당하고 8이 포함이 되지 않고 더 많은 배열이 선언되는 것 같습니다.혹시 모자란 것보단 과한 건 결과값에 미치는 영향이 없기 때문에 위와 같은 코드로 구성했는지 궁금합니다.
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
들여쓰기가 햇갈리네요
비전공자 신입 취준생입니다.부트캠프 통해서 백엔드 과정을 수료 후 너무 부족해서 현재 인프런에서 자바하고 스프링공부를 다시하면서 알고리즘 공부도 준비를 해야할 것 같아서 강의를 듣고있습니다.자바도 아직 많이 부족한데 파이썬으로 하다보니 더 헷갈리네요제공해주신 파이썬 기초강의를 듣고 알고리즘 강의를 듣고있는데 기초강의와 다르게 파이참으로 할 땐 들여쓰기를 하더라고요 자바와 다른 방식으로 들여쓰기를 하다보니 아직은 어려운데 들여쓰기는 어떤식으로 익혀야할지 모르겠네요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-T 질문있습니다.
http://boj.kr/e06068e5bc084dbfabe9032b1222804e제 코드입니다. 2048(easy)랑 낚시왕처럼 4방향을 모두 고려해야할때, 비슷한 로직이긴 하지만 변수를 달리해야 할때, 그냥 방향 하나하나마다 코드를 다 짰는데 간결한 코드를 짜는 것을 충분히 연습해봐야한다고 생각하시나요?
-
해결됨38군데 합격 비법, 2025 코딩테스트 필수 알고리즘
강의자료 5일차 11. 카카오 추가 코딩 테스트 - 4 java코드가 잘못되어 있습니다.
강의자료 에서(링크는 삭제했습니다)11. 카카오 추가 코딩 테스트 - 4java 코드가12. 카카오 추가 코딩 테스트 - 5의 java 코드로 입력되어있습니다.