본문 바로가기

Coding Test

(163)
백준 2056 작업 (C++) https://www.acmicpc.net/problem/2056#include #include #include #include using namespace std;vector g[10001];vector t;vector indeg;vector res;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; int ans = -1; cin >> n; t.resize(n + 1); indeg.resize(n + 1, 0); for (int i = 1; i > t[i]; int inCnt; cin >> inCnt; for (int j = ..
백준 3107 IPv6 (C++) https://www.acmicpc.net/problem/3107#include #include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); string s; cin >> s; string ans; string temp; int cnt = 0; for (int i = 0; i  1. 문제축약된 IPv6의 주소가 주어진다. 이는 다음의 규칙으로 만들어진 주소이다.각 그룹의 앞자리의 0의 전체 또는 일부를 생략할 수 있다.만약 0으로만 이루어져 있는 그룹이 있을 경우 그 중 한 개 이상 연속된 그룹을 하나 골라 콜론 두개로 바꿀 수 있다. ..
백준 16236 아기 상어 (C++) https://www.acmicpc.net/problem/16236#include #include #include using namespace std;vector> arr;bool visit[21][21];int dy[4] = {-1, 0, 0, 1};int dx[4] = {0, -1, 1, 0};int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; int ans = 0; cin >> n; arr.resize(n, vector(n)); pair eat; for (int i = 0; i > arr[i][j]; if (arr[i][j] == 9) { ..
백준 1956 운동 (C++) https://www.acmicpc.net/problem/1956#include #include #define INF 987654321using namespace std;int dist[401][401];int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int v, e; int ans = INF; cin >> v >> e; fill_n(*dist, 401 * 401, INF); for (int i = 0; i > start >> end >> di; dist[start][end] = di; } for (int k = 1; k 1. 문제방향성 그래프의 vertex..
백준 1749 점수따먹기 (C++) https://www.acmicpc.net/problem/1749#include #include using namespace std;vector> arr;vector> prefix;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, m; int ans = -987654321; cin >> n >> m; arr.resize(n + 1, vector(m + 1)); prefix.resize(n + 1, vector(m + 1)); for (int i = 1; i > arr[i][j]; } } for (int i = 1; i 1. 문제n*m의 행렬이..
백준 1368 물대기 (C++) https://www.acmicpc.net/problem/1368#include #include #include using namespace std;vector sCost;vector> cCost;int parent[301];int findP(int k) { if (parent[k] == k) { return k; } else { return parent[k] = findP(parent[k]); }}void uni(int a, int b){ int pA = findP(a); int pB = findP(b); if (pA == pB) { return; } if (pA > pB) { parent[pA] = pB; ..
백준 22943 수 (C++) https://www.acmicpc.net/problem/22943#include #include #include using namespace std;vector prime;int ans = 0;bool visit[10];int k, m;void solve(int cnt, int num) { if (cnt == k) { int s = 0; int e = prime.size() - 1; bool isSum = false;// 서로 다른 두 개의 소수의 합으로 나타낼 수 있는 경우 while (s > k >> m; for (int i = 2; i 1. 문제k와 m이 주어진다. 서로 다른 숫자로 이루어진 k 자리의 수 중 다음 조건을 만..
백준 14719 빗물 (C++) https://www.acmicpc.net/problem/14719#include #include using namespace std;vector blk;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int h, w; int ans = 0; cin >> h >> w; blk.resize(w); for (int i = 0; i > blk[i]; } for (int i = 1; i =i: 블럭 공간 for (int j = 0; j = i) { ans += j - s - 1; isStart = false; ..