분류 전체보기100 [백준] 9466. 텀 프로젝트(c++) https://www.acmicpc.net/problem/9466쉽지 않았다.틀렸던 방식은 loop 마다 visited를 새로 생성해서 o(n^2)이 되어 시간초과가 나오는 문제였다.(방문했던 노드를 다시 한번 방문한다는...) -> 이번 방문에서 자기 자신을 다시 만났을 경우, 사이클이라는 것을 표시해줄 -1을 넣어주고, 한 사이클을 돌았을 때 (-1을 다시 만났을 때) 탈출해주면 된다.이미 지나갔었던 방문 배열을 만나게 된다면, 자연스럽게 사이클이 아니라는 것이니 break 해주면 된다. #include #include #include #include #include #include #include #include #include #include #include #include using namesp.. 2025. 3. 11. [백준] 2206. 벽 부수고 이동하기(c++) https://www.acmicpc.net/problem/2206벽 부순 상태인 방문 배열과, 벽을 부수지 않은 상태인 방문배열을 나누는 것과, 그에 따른 분기를 설정하는 것이 쉽지 않았다.처음 접근 방법으로 flag를 통해서 탈출도 하고 분기를 나눠보려 했다. 하지만 모든 조건을 커버하지 못해서 아예 방향성을 바꿨다.chatgpt도 이런 답변을 하였다. 일반적으로 한 개의 벽을 부술 수 있는 문제에서는 3차원으로 상태를 관리한다고 한다(y,x, 벽부순여부)그걸 적용하니.. 바로 풀렸다...#include #include #include #include #include #include #include #include #include #include #include #include #define ll lo.. 2025. 3. 11. [백준] 13549. 숨바꼭질3(c++) https://www.acmicpc.net/problem/13549제출했다가 99%에서 틀려서 허거덩하면서 확인했다.x+1을 먼저 실행할 경우 값이 오염받을 수 있어 x-1을 먼저 해줘야 했다. #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;int dist[100002] = {0};int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; if (n >= k) { co.. 2025. 3. 11. [백준] 1074. Z(c++) https://www.acmicpc.net/problem/1074재귀를 돌기 전 분기로 해당하는 분기를 가는 문제였다. #include #include #include #include #include #include #include #include #include #include #include #include #define ll long longusing namespace std;int cnt = 0;void cal(int n, int startY, int startX, int r, int c) { // 종료 조건( n== 0일 때 종료) if (n == 0) { return; } // 사분면 분기로 나눠줄까??? if (r > n >> r >> c; cal.. 2025. 3. 2. [백준] 11729. 하노이 탑 이동 순서(c++) https://www.acmicpc.net/problem/11729일반 항을 먼저 만들었다가..탑의 start, end가 어떻게 되는지가 더 중요한 문제였던 것 같다.기존의 반복문(o(n))을 pow로 바꿔서 제출했다가, 캐스팅을 하지 않아서 틀렸다. double인 것을 유념하기1. 일반항2. 재귀함수 안의 로직 #include #include #include #include #include #include #include #include #include #include #include #include #define ll long longusing namespace std;void cal(int n, int start, int mid, int end) { if (n == 1) { cou.. 2025. 3. 2. [백준] 1629. 곱셈(c++) https://www.acmicpc.net/problem/1629아주 쉽지 않았다. 해설을 보고 풀었다.재귀는 일반 항을 어느정도 가늠 후에 작은 수로 검증을 해보고 귀납법을 적용해보는 게 중요한 것 같다.귀납적 사고? 쉽지 않다. #include #include #include #include #include #include #include #include #include #include #include #include #define ll long longusing namespace std;ll ans(ll a, ll b, ll c) { if (b == 1) return a % c; ll mod = ans(a, b / 2, c); // 2n으로 만들어주는 거임 mod = mod *.. 2025. 3. 2. 이전 1 2 3 4 5 ··· 17 다음