• (백준 알고리즘 문제풀이) 1325번 효율적인 해킹

    문제 문제 링크 어떻게 접근할 것인가 하나의 점에서 시작해서 접근할 수 있는 모든 점의 수를 저장하고 가장 큰 점들을 프린트 한다. 코드 #include <cstdio> #include <vector> #include <queue> using namespace std; int m, n, v, w, M; vector<vector<int> > ll; int bfs(int s){ int c = 0; queue<int> q; q.push(s);...


  • (백준 알고리즘 문제풀이) 11437번 LCA

    문제 문제 링크 어떻게 접근할 것인가 LCA 코드! 코드 #include <queue> #include <vector> #include <cstdio> #define INF 1000000000 using namespace std; vector<vector<int> > ll; int parent[17][50020], level[50020]; int n, m, v, w, u; int LCA(int chd, int par){ int diff = level[chd] - level[par]; for(int i = 16; i >=...


  • (강화학습 입문) 2. 그리드월드와 다이나믹 프로그래밍 - 정책, 가치 이터레이션

    3장 강화학습 기초 2: 그리드월드와 다이내믹 프로그래밍 알고리즘에서 접하는 DP는 분할기법을 이용하는 것으로 큰 문제를 해결하기 위해 문제를 작은 여러 문제로 나누는 것을 말한다. 이 과정에서 매번 같은 계산을 누적하지 않고 값을 저장하고 재사용한다. MDP에서 DP의 과제 큰 문제는 무엇이고 작은 문제는 무엇인가? 반복되는 작은 문제는 어떻게 풀 것인가? 저장되는...


  • (백준 알고리즘 문제풀이) 2206번 벽 부수고 이동하기

    문제 문제 링크 어떻게 접근할 것인가 일반 BFS에서 뚫은 경험이 있는지와 길이 뚫려있는지에 따라 경우의 수를 3개로 나눴다. 1.길이 뚫려있는데 아직 안가본 길인 경우 2.길은 뚫려있는데 가본 길이고 아직 뚫을 수 있는 경우 3.길이 막혀있는데 아직 뚫을 수 있는 경우 코드 #include <cstdio> #include <queue> #include <algorithm> using namespace std;...


  • (백준 알고리즘 문제풀이) 1463번 1로 만들기

    문제 문제 링크 어떻게 접근할 것인가 어떻게 하지.. 하다가 그냥 1부터 1000000까지 다 하나씩 업데이트 시켜주기로 했다. 그리고 나서 선택하니까 정답… 코드 #include <cstdio> #include <vector> using namespace std; #define INF 10000000 int n; int main(){ vector<int> arr(3000010, INF); scanf("%d", &n); arr[1] = 0; for(int i = 1; i <=...