목록분류 전체보기 (268)
정화 코딩

093. Dance Dance Revolution (백준 2342번) https://www.acmicpc.net/problem/2342 import sysinput = sys.stdin.readlinedata = list(map(int, input().split()))n = len(data) - 1l = [0 for _ in range(n + 1)]r = [0 for _ in range(n + 1)]p = [0 for _ in range(n + 1)]for i in range(n): if l[i] == data[i] or r[i] == data[i]: l[i + 1] = l[i] r[i + 1] = r[i] p[i + 1] = p[i] + 1 elif l[..

https://www.acmicpc.net/problem/1012 #include #include #include using namespace std;int dn[4] = {0, 0, -1, 1};int dm[4] = {-1, 1, 0, 0};int m, n, k;int cnt = 0;vector> g;void bfs(vector start) { queue> q; cnt++; q.push(start); g[start[0]][start[1]] = 0; while (!q.empty()) { vector cur = q.front(); q.pop(); for (int i = 0; i = 0 && tn = 0 && tm > tn; for (in..

EDOC 2024-1 5회차 정모 (골드: 동적 계획법 알아보기 3) A https://www.acmicpc.net/problem/13270 첫번째 풀이#include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector minD(n + 1, 0); vector maxD(n + 1, 0); minD[1] = maxD[1] = 0; minD[2] = maxD[2] = 1; if (n >= 3) minD[3] = maxD[3] = 2; int x1 = 2; int ..

https://www.acmicpc.net/problem/7569 #include #include #include using namespace std;int dh[6] = {0, 0, 0, 0, 1, -1};int dn[6] = {1, -1, 0, 0, 0, 0};int dm[6] = {0, 0, -1, 1, 0, 0};vector>> box;int m, n, h;int t = 0;bool check() { for (int i = 0; i > q; for (int i = 0; i cur = q.front(); q.pop(); for (int x = 0; x = 0 && ni = 0 && nj = 0 && nk > m >> n >> h; bo..

090. LCS 2 (백준 9252번) https://www.acmicpc.net/problem/9252 import sysinput = sys.stdin.readlinestr1 = input().strip()str2 = input().strip()len1 = len(str1)len2 = len(str2)dp = [[0 for _ in range(len2 + 1)] for _ in range(len1 + 1)]memo = [[0 for _ in range(len2 + 1)] for _ in range(len1 + 1)]for i in range(1, len1 + 1): for j in range(1, len2 + 1): if str1[i - 1] == str2[j - 1]: ..

5/12. 바이러스 (백준 2606번) https://www.acmicpc.net/problem/2606 //C++#include #include #include using namespace std;vector visited;vector> g;int n;int bfs(int start) { queue q; int cnt = 0; q.push(start); visited[start] = true; while (!q.empty()) { int cur = q.front(); q.pop(); for (int nxt: g[cur]) { if (!visited[nxt]) { q.push(nxt); ..

A. 1, 2, 3 더하기 (백준 9095번) https://www.acmicpc.net/problem/9095 #pythonimport sysinput = sys.stdin.readlinet = int(input())dp = [0] * 12dp[1] = 1dp[2] = 2dp[3] = 4for i in range(4, 12): dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]for _ in range(t): n = int(input()) print(dp[n])n을 1, 2, 3의 합으로 나타내려면 다음과 같은 경우의 수가 있다. (여기서 주의할 점은 1+2와 2+1가 다른 경우라는 것이다.)1) (n-1)까지 만들고 1을 더하기2) (n-2)까지 만들고 2를 더..

거리의 합 2 (백준 23330번) https://www.acmicpc.net/problem/23330문제 해석이런식으로 n개의 점이 수직선 위에 놓여 있고, 모든 점들의 쌍에 대해 두 점 사이의 거리의 합을 구하는 문제이다. 첫번째 풀이우선 가장 직관적인 풀이로 풀어보자. //C++#include #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector data(n); for (int i = 0; i > data[i]; } long long sum = 0; for (int i ..