문제 풀이 (C, C++) 86

[백준/C++] 29519 케이크 두 개

https://www.acmicpc.net/problem/29159 29159번: 케이크 두 개 $(0,0),(0,1),(1,0),(1,1)$이 네 쪽지점인 직사각형과 $(2,1),(3,2),(3,1),(3,2)$가 네 꼭지점인 직사각형을 동시에 이등분하는 직선의 방정식은 $y=\frac12 x+\frac14$이다. www.acmicpc.net 코드 #include using namespace std; typedef long long ll; ll gcd(ll a, ll b) { if (b == 0) return a; else return gcd(b, a % b); } int main() { ll ax = 0, ay = 0, bx = 0, by =0, x, y, dy, dx, k; for (int i = ..

[백준/C++] 17390 이건 꼭 풀어야 해!

https://www.acmicpc.net/problem/17390 17390번: 이건 꼭 풀어야 해! [2, 5, 1, 4, 3]을 비내림차순으로 정렬하면 [1, 2, 3, 4, 5]이다. www.acmicpc.net 코드 #include #include #include using namespace std; #define FASTIO ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int main() { FASTIO; int n, q; cin >> n >> q; vector v(n); vector sum(n+1); for (int i = 0; i > v[i]; sort(v.begin(), v.end()); sum[1] =..

[백준/C++] 9470 Strahler 순서

https://www.acmicpc.net/problem/9470 9470번: Strahler 순서지질학에서 하천계는 유향그래프로 나타낼 수 있다. 강은 간선으로 나타내며, 물이 흐르는 방향이 간선의 방향이 된다. 노드는 호수나 샘처럼 강이 시작하는 곳, 강이 합쳐지거나 나누어지는 곳www.acmicpc.net코드#include #include #include #include using namespace std; int main() { int t, k, m, p; cin >> t; for (int i = 0, result; i > k >> m >> p; vector v(m + 1); vector cnt(m + 1); vector order(m + 1, ..

[백준/C++] 31423 신촌 통폐합 계획

https://www.acmicpc.net/problem/31423 31423번: 신촌 통폐합 계획 첫 번째 줄에 대학교의 개수 $N$이 주어진다. $(2 \leq N \leq 500 \, 000)$ 다음 $N$개의 줄의 $i$번째 줄에 대학교 이름을 의미하는 알파벳 소문자로 이루어진 문자열 $s_i$가 주어진다. 주어지는 대학교 www.acmicpc.net (이 문제는 SUAPC 2024 Winter에 출제된 문제다. 참고로 나는 대회에 나가서 해당 문제를 풀었다. 오픈 콘테스트가 종료되고 문제가 공개되었길래 코드를 한 번 제출해본 뒤 미리 작성해둔 글을 올린다. 느낀점은 대회 당시 내가 했던 생각들을 옮겼다.) 코드 #include #include using namespace std; vector v..

[백준/C++] 31418 스펀지

https://www.acmicpc.net/problem/31418 31418번: 스펀지 첫 번째 줄에 스펀지의 가로 길이 $W$와 세로 길이 $H$, 바이러스의 수 $K$, raa가 바이러스를 관찰할 시간 $T$가 공백으로 구분되어 주어진다. $(1 \leq W, H, K \leq 10^6;$ $0 \leq T \leq 10^6)$ 이어서 $K$줄에 www.acmicpc.net (이 문제는 SUAPC 2024 Winter에 출제된 문제다. 참고로 나는 대회에 나가서 해당 문제를 풀었다. 오픈 콘테스트가 종료되고 문제가 공개되었길래 코드를 한 번 제출해본 뒤 미리 작성해둔 글을 올린다. 느낀점은 대회 당시 내가 했던 생각들을 옮겼다.) 코드 #include #include using namespace s..

[백준/C++] 10026 적록색약

https://www.acmicpc.net/problem/10026 10026번: 적록색약적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록)www.acmicpc.net코드#include using namespace std; int n, division = 0, nodivision = 0; int dx[4] = { 0, 0, 1,-1 }, dy[4] = { 1,-1,0,0 }; bool dv[101][101], ndv[101][101]; string arr[101]; void d_dfs(int x, int y) { dv[x][y] = true; for (int..

[백준/C++] 29160 나의 FIFA 팀 가치는?

https://www.acmicpc.net/problem/29160 29160번: 나의 FIFA 팀 가치는? 첫 번째 줄에 선수의 수 $N$과 $K$가 공백으로 구분되어 주어진다. $(0\leq N\leq 1\,000\,000;$ $1\leq K\leq 50\,000)$ 두 번째 줄부터 $N$개의 줄에 걸쳐 각 줄에 $i$번째 선수의 포지션 $P_{i}$, 선수 가치 $W_{i}$가 www.acmicpc.net 코드 #include #include #include using namespace std; vector v(12); bool isexist[12]; int main() { int n, k; long long sum = 0; cin >> n >> k; for (int i = 0, p,w; i < n..

[백준/C++] 2485 가로수

https://www.acmicpc.net/problem/2485 2485번: 가로수첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가www.acmicpc.net코드#include #include #include using namespace std; int gcd(int a, int b) { if (b == 0) return a; else return gcd(b, a % b); } int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n, result=0; cin >> ..

[백준/C++] 5430 AC

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net C++ #include #include #include using namespace std; typedef long long ll; void printDeque(deque d, int flag) { cout > n >> arr; deque d = parsing(arr); for (j = 0, flag = 0; j < order.length(); j++) { if (order[j] == 'R') flag = 1 - flag; else { if (d.emp..

[백준/C++] 26266 비즈네르 암호 해독

https://www.acmicpc.net/problem/26266 26266번: 비즈네르 암호 해독 첫 번째 줄에 평문이 주어진다. 평문은 알파벳 대문자로만 구성되어 있으며, 평문의 길이는 $200\,000$을 넘지 않는다. 두 번째 줄에 평문에 대한 비즈네르 암호문이 주어진다. 암호문은 알파벳 대 www.acmicpc.net C++ #include #include using namespace std; vector makeNumber(string s) { vector result; for (int i = 1; i > p >> result; vector pv(p.length()); vector rv(result.length()); for (int i = 0; i < p.length(); i++) pv[i..