/images/logo.png

[백준]4963 섬의 개수

https://www.acmicpc.net/problem/4963 풀이: 모든 지도를 순회한다. 만약 지도의 한 부분이 땅이라면, 연결된 모든 땅을 바다로 바꾼 후 섬의 개수를 +1 해준다. 지도의 모든 부분이 바다로 바뀔때까지 반복한다. 섬의 개수를 출력한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include <iostream>using namespace std; int n, m, i, t, a[52][52], c; void I(int x, int y) { a[x][y] = 0; if (x > 0 && y > 0 && a[x - 1][y - 1]) I(x - 1, y - 1); if (x > 0 && a[x - 1][y]) I(x - 1, y); if (x > 0 && y + 1 < n && a[x - 1][y + 1]) I(x - 1, y + 1); if (y > 0 && a[x][y - 1]) I(x, y - 1); if (y + 1 < n && a[x][y + 1]) I(x, y + 1); if (x + 1 < m && y > 0 && a[x + 1][y - 1]) I(x + 1, y - 1); if (x + 1 < m && a[x + 1][y]) I(x + 1, y); if (x + 1 < m && y + 1 < n && a[x + 1][y + 1]) I(x + 1, y + 1); } int main() { while (1) { cin >> n >> m; c = 0; if (!

[백준]5543 상근날드

https://www.acmicpc.net/problem/5543 풀이: 햅버거 중 가장 싼 것 + 음료 중 가장 싼 것 - 50원 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 #include <iostream>using namespace std; int a,b,c,d,e; int main() { cin >> a >> b >> c >> d >> e; a = a < b ? a : b; a = a < c ? a : c; d = d < e ?

[백준]1225 이상한 곱셈

https://www.acmicpc.net/problem/1225 풀이: 123 * 45 -> 1*4 + 1*5 + 2*4 + 2*5 + 3*4 + 3*4 -> 1(4 + 5) + 2(4 + 5) + 3(4 + 5) -> (1 + 2 + 3)(4 + 5) 즉, (왼쪽 숫자의 각 자릿수의 합) * (오른쪽 숫자의 각 자릿수의 합) 이다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 #include <iostream>using namespace std; long long q = 0, w = 0, i; int main() { string a, b; cin >> a >> b; for (i = 0; i < a.

[백준]1373 2진수 8진수

https://www.acmicpc.net/problem/1373 풀이: 2진수를 8진수로 변환하여 출력. 변환하는 방법은 11001100(2) 일때, 뒤에서 부터 3자리로 끊어서 생각한다. 011 001 100 -> 3 1 4 주어진 수의 ‘길이’ 가 1,000,000 까지 갈 수 있으므로 주의하자. (수가 1,000,000 이 아니다. 수의 길이 이므로 엄청나게 큰 수가 들어온다.) 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <iostream>#include <string>using namespace std; int b, c, i, t; int main() { string s, a; cin >> s; for (i = s.

[백준]1389 케빈 베이컨의 6단계 법칙

https://www.acmicpc.net/problem/1389 풀이: [C++]플로이드-와샬 알고리즘(Floyd-Warshall Algorithm) 참고 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include <iostream>#include <algorithm>using namespace std; int N, M, q, w, d[102][102], a, s = 987654321, c, i, t, y; int main() { cin >> N >> M; for (i = 0; i < M; i++) { cin >> q >> w; d[q][w] = 1; d[w][q] = 1; } for (i = 1; i <= N; i++) for (t = 1; t <= N; t++) if (i !

[백준]1238 파티

https://www.acmicpc.net/problem/1238 풀이: [C++]다익스트라 알고리즘(Dijkstra Algorithm) 참고 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #include <iostream>#include <vector>#include <queue>#include <algorithm>using namespace std; int V, E, k, u, v, w, i, t, d1[1002], d2[1002], b[1002], s = 0; int main() { cin >> V >> E >> k; priority_queue<pair<int, int>> p; vector<vector<pair<int, int>>>a(V + 1); for (i = 0; i < E; i++) { cin >> u >> v >> w; a[u].