-
[BOJ] 1026 : 보물
1026 : 보물 풀이 하나는 오름차순, 하나는 내림차순으로 정렬하고 곱해주면 된다! 코드 #include <stdio.h> #include <algorithm> int main() { int n, i, a[101], b[101], c = 0; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (i = 0; i < n; i++) scanf("%d", &b[i]); std::sort(a, a + n); std::sort(b, b + n, [](const int &i, const int &j){return i > j;}); for (i = 0; i < n; i++) c...
-
[BOJ] 1012 : 유기농 배추
1012 : 유기농 배추 풀이 DFS를 돌리자. 코드 #include <stdio.h> #include <memory.h> const int dx[] = { 0,0,-1,1 }; const int dy[] = { -1,1,0,0 }; int tc, n, m, k, i, j, x, y, ans; bool farm[52][52]; void dfs(int x, int y) { farm[x][y] = 0; for (int i = 0; i < 4; i++) if (farm[x + dx[i]][y + dy[i]]) dfs(x + dx[i], y + dy[i]); } int main() { scanf("%d", &tc); while...
-
[BOJ] 2623 : 음악프로그램
2623 : 음악프로그램 풀이 위상정렬을 하면 된다! 코드 #include <iostream> #include <vector> using namespace std; const int n_ = 1000 + 3; int n, m, idg[n_]; vector<int> ans; vector<int> edg[n_]; void dfs(int now) { idg[now] = -1; ans.push_back(now); for (auto nxt : edg[now]) if (!(--idg[nxt])) dfs(nxt); } int main() { int i, j, a, b, c; cin >> n >> m; while (m--) { cin >> a >> b; while (--a) { cin >> c;...
-
[BOJ] 2511 : 카드놀이
2511 : 카드놀이 풀이 구현을 하자. 코드 #include <bits/stdc++.h> using namespace std; int a[10], b[10], i, A, B, p; int main() { for (i = 0; i < 10; i++) scanf("%d", &a[i]); for (i = 0; i < 10; i++) scanf("%d", &b[i]); for (i = 0; i < 10; i++) { if (a[i] > b[i]) A += 3, p = 0; else if (a[i] < b[i]) B += 3, p = 1; else A++, B++;...
-
[BOJ] 1509 : 팰린드롬 분할
1509 : 팰린드롬 분할 풀이 나중에 써야징 코드 #include <stdio.h> #include <string.h> const int n_ = 2500 + 5; int len, dp[n_][n_], res[n_]; char data[n_]; int main() { scanf("%s", data); len = strlen(data); for (int i = 1; i <= len; i++) dp[i][i] = 1; for (int i = 1; i <= len - 1; i++) if (data[i - 1] == data[i]) dp[i][i + 1] = 1; for (int i = 2; i <= len...