목록PS (94)
정화 코딩
https://www.acmicpc.net/problem/1647 #include #include #include using namespace std;int n, m;int parent[100001];vector> edge;int find(int a) { if (parent[a] == a) { return a; } else { parent[a] = find(parent[a]); return parent[a]; }}void unionf(int a, int b) { a = find(a); b = find(b); if (a != b) parent[b] = a;}int main() { ios_base::sync_with_stdio(0);..
https://www.acmicpc.net/problem/5534 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; string s; cin >> s; int ss = s.size(); int ans = 0; for (int i = 0; i > st; int sts = st.size(); bool psb = false; for (int j = 0; j = ss) { psb = true; ..
https://www.acmicpc.net/problem/2467 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector a(n); for (int i = 0; i > a[i]; int l = 0; int r = n - 1; int dif = 2000000000; int la = 0; int ra = 0; while (l 0) r--; else l++; } cout 간단한 투 포인터 문제. 포인터 하나는 왼쪽 끝을, 하나는 오른쪽 끝을 ..
https://www.acmicpc.net/problem/13460 #include #include #include using namespace std;int dx[] = {1, -1, 0, 0};int dy[] = {0, 0, 1, -1};int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; vector> g(n, vector(m)); int ri, rj, bi, bj; for (int i = 0; i > s; for (int j = 0; j > q; vector>>> visited(n, vector>>(m, vector>(n, v..
https://www.acmicpc.net/problem/2755 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; int cnt = 0; double sums = 0; while (n--) { string name, grade; int weight; double score = 0; cin >> name >> weight >> grade; if (grade == "A+") score = 4.3; else if (grade..
https://www.acmicpc.net/problem/1806 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, s; cin >> n >> s; vector a(n); for (int i = 0; i > a[i]; int si = 0; int ei = 1; int sumt = a[0]; int ans = 200000; int cnt = 1; while (ei 보자마자 투 포인터로 풀어야겠다고 생각했다. 그래서 현재까지의 합이 s보다 작으면 뒤로 한칸 옮겨 하나 더 더하고, 현재까지의..
https://www.acmicpc.net/problem/1238 #include #include using namespace std;int n, m, x;vector> g;int MAX = 1000000000;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> m >> x; g = vector>(n + 1, vector(n + 1, MAX)); for (int i = 0; i > a >> b >> t; g[a][b] = t; } for (int k = 1; k 처음에는 다익스트라로 하려고 했는데, 어차피 사람당 갔다 왔다 이렇게 2번 해야 해서 총 2*n번..
https://www.acmicpc.net/problem/17626 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector dp(n + 1, 100); dp[0] = 0; dp[1] = 1; for (int i = 1; i "최소" 개수의 제곱수 합으로 표현해야 한다는 점에서 dp가 떠올랐다. 0부터 n까지 배열로 만들고 제곱수를 더해가며 dp 배열을 채웠다. (AC)