• (백준 알고리즘 문제풀이) 1753번 최단경로

    문제 문제 링크 어떻게 접근할 것인가? 다익스트라를 이용한다. 문제 문제는 노드의 거리가 변경되면서 힙에서의 순서가 바뀌게 되는데 그걸 어떻게 처리해줄 것이냐 하는 것이다. STL의 priority_queue에는 decrease_key와 같은 function을 제공하지 않는다. 매번 heapify해주는 것은 시간이 너무 오래 걸린다ㅠㅠ 시간초과..ㅠㅠㅠ 그렇다면?? 해결 방안 힙에 업데이트된 거리의 새로운 노드를 넣어준다. 그리고 모든 노드가...


  • (강화학습 입문) 1. 강화학습 소개 및 MDP와 벨만 방정식 정리

    동기 육목 블로그 게시글을 따라가면서 육목도 알파고 제로처럼 만들 수 있겠다고 생각했다. 미리 짜놓은 코드를 이해하면서 Game.py 정도를 수정하면서 알고리즘을 만들어보려 했지만 제일 핵심이 되는 모델을 이해하지 못하고 이를 접목시키는 것은 배울 수 있는 것이 얼마 없다는 생각이 들었다. 결국 진혁이형한테 이 얘기를 했더니 책을 하나 딱 가져다 줬다. 파이썬과...


  • (백준 알고리즘 문제풀이) 7562번 나이트의 이동

    문제 문제 링크 어떻게 접근할 것인가? bfs. 끝. 코드 #include <cstdio> #include <queue> typedef struct Point{ int x, y; Point(int i, int j){ x = i; y = j; } }Point; using namespace std; int board[300][300]; int d[8][2] = { {1, 2}, {2, 1}, {-1, 2}, {-2, 1}, {-1, -2},...


  • (백준 알고리즘 문제풀이) 2667번 단지번호붙이기

    문제 문제 링크 어떻게 접근할 것인가? 1이 있는 곳을 큐에 넣어주고 bfs를 진행한다. bfs해서 4방향 중에 1이 있는 곳을 큐에 넣어주고 해당 위치를 0으로 바꿔준다. 이때 매번 count를 증가시킨다. bfs가 끝나는 결과 값을 벡터에 넣고 솔팅한다. 코드 #include <cstdio> #include <vector> #include <queue> #include <algorithm> using namespace std; vector<vector<int> >...


  • (백준 알고리즘 문제풀이) 2178번 미로 탐색

    문제 문제 링크 어떻게 접근할 것인가? 1, 1을 큐에 넣어주고 하나씩 꺼낸다. 큐에서 꺼낸 값의 사방을 확인하고 1이면 큐에 넣어주고 해당 위치의 값을 이전 값 + 1 해준다. n, m의 결과를 찍어준다. 코드 #include <cstdio> #include <vector> #include <queue> #include <algorithm> using namespace std; vector<vector<int> > v; queue<pair<int, int> >...