알고리즘/백준 알고리즘 공부

    [플로이드–와샬] (백준 2458) 키 순서

    알고리즘 플로이드-와샬 [문제 본문] 더보기 HTML 삽입 미리보기할 수 없는 소스 [푼 코드] #include #include #include using namespace std; #define MAXNUM 501 #define INF 987654321 int N, M; int arr[MAXNUM][MAXNUM]; void Solved() { for (int k = 1; k > b; arr[a][b] = 1; } Solved(); return 0; } #플로이드와샬 #백준2458 #백준 #백준알고리즘

    [플로이드–와샬] (백준 2660) 회장뽑기

    알고리즘 플로이드-와샬 [문제 본문] 더보기 HTML 삽입 미리보기할 수 없는 소스 [푼 코드] #include #include #include #define MAXNUM 51 #define INF 987654321 using namespace std; int arr[MAXNUM][MAXNUM]; int N; vector v; void Solved() { for (int k = 1; k

    [다익스트라] (백준 9370) 미확인 도착지

    알고리즘 다익스트라 [문제 본문] 더보기 HTML 삽입 미리보기할 수 없는 소스 [푼 코드] #include #include #include #include #define MAXNUM 2001 #define INF 987654321 using namespace std; int n, m, t; int s, g, h; vector v[MAXNUM]; vector goal; int dp[MAXNUM]; void Solved(int start) { for (int i = 1; i second; int i_cur = iter->first; if (dp[i_cur] > dp[cur] + i_cost) { dp[i_cur] = dp[cur] + i_cost; pq.push({ -dp[i_cur],i_cur }); }..

    [다익스트라] (백준 4485) 녹색 옷 입은 애가 젤다지?

    알고리즘 다익스트라 [문제 본문] 더보기 HTML 삽입 미리보기할 수 없는 소스 [푼 코드] #include #include #define MAXNUM 126 #define INF 987654321 using namespace std; int N; int arr[MAXNUM][MAXNUM]; int d[MAXNUM][MAXNUM]; int dx[4] = { 1,-1,0,0 }; int dy[4] = { 0,0,1,-1 }; bool IsRange(int x, int y) { return (x >= 0 && x = 0 && y < N); } int Solved(int x,int y) { for (int y = 0; y < N; y++) { for (int x = 0; x < N; x++) ..

    [다익스트라] (백준 5972) 택배 배송

    알고리즘 다익스트라 [문제 본문] 더보기 HTML 삽입 미리보기할 수 없는 소스 [푼 코드] #include #include #include #define MAXNUM 50001 #define INF 987654321 using namespace std; int N, M; vector v[MAXNUM]; int d[MAXNUM]; int Solved(int start, int end) { priority_queue pq; d[start] = 0; pq.push({ 0,start }); while (!pq.empty()) { int cost = -pq.top().first; int cur = pq.top().second; pq.pop(); for (auto iter = v[cur].begin(); iter..

    [그리디] (백준 1080) 행렬

    알고리즘 그리디 알고리즘 [문제 본문] 더보기 HTML 삽입 미리보기할 수 없는 소스 [푼 코드] #include using namespace std; int N, M; int arr[51][51]; int goal[51][51]; int Solved() { bool isCheck = false; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { if (arr[i][j] != goal[i][j]) { isCheck = true; break; } } if (isCheck) break; } if (!isCheck) return 0; if (N < 3 || M < 3) { return -1; } int result = 0; for (int i = 0; ..