Programming 77

[CF] Round #556 (Div. 2) _ 210124

(2021년 1월 25일에 작성한 글입니다.) Standings - Codeforces Round #556 (Div. 2) - Codeforces codeforces.com 학회 코포 스터디에서 버추얼로 풀었다. ​ A. A가 A 같지가 않았다 문제 이해하는데 꽤 시간 걸렸지만 그래도 구현은 쉬웠다. 구매 가격 중 가장 낮은거, 판매 가격 중 가장 높은 걸 비교해서 만약 더 비싸게 팔 수 없으면 아무 처리도 하지 않고, 더 비싸게 팔 수 있다면 최대한 구매한 뒤 되팔면 된다.​ int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll N, M, K; cin >> N >> M >> K; vector buy(N), sell(M); for (int ..

Programming 2021.04.26

[BOJ] 11085 군사 이동

(2021년 1월 24일에 작성한 글입니다.) 11085번: 군사 이동 전쟁 당시 Baekjoon World의 국왕은 Cube World를 공격할 작전을 세운 적이 있습니다. Baekjoon World와 Cube World는 p개의 지점과 w개의 길로 표현됩니다. 모든 길은 양방향이며, 각 길마다 너비가 존재하여 www.acmicpc.net (20.08.09) c부터 v까지 DFS를 계속 돌면서 체크하도록 했더니 시간초과. 경로가 존재하는지만 확인을 하면 되기 때문에 Union-Find(DST)를 사용하면 훨씬 간단하다!!! 우왕 짱 신기 그리고!! structure를 이용해서 푼 첫 문제인거 같다 아마 짱신기!!!!! 이제 앞으로 벡터 쓸때 pair를 여러개 하지 않아도 된다...ㅋㅋㅋㅋㅋ 앞으로 st..

Programming 2021.04.26

[BOJ] 11111 두부장수 장홍준2

(2021년 1월 24일에 작성한 글입니다.) 11111번: 두부장수 장홍준 2 첫째 줄에는 두부판의 세로크기 N, 가로크기 M이 주어진다. N, M은 1이상 50이하의 정수이다. 그 다음 N줄에 걸쳐 M개의 문자가 주어진다. 각 문자는 그 칸의 두부의 등급을 나타내며 A, B, C, D, F 중 www.acmicpc.net -price를 cost 값으로 넣고 MCMF를 돌린 후에 답은 -price를 출력하면 된다. 처음에는 source -> (i + j)가 짝수인 곳 -> 인접한 곳 -> sink 이런 방식으로 했는데 예제가 계속 36이 나왔다. 그래서 인터넷에 있는 코드 찾아보니까 모든 노드에서 sink로 capacity 1, cost 0인 간선을 만들어줘야 했다. 처음에는 (i + j)가 짝수인 곳..

Programming 2021.04.26

[BOJ] 19580 마스크가 필요해

(2021년 1월 21일에 작성한 글입니다.) 19580번: 마스크가 필요해 첫 번째 줄에는 A도시의 시민 수인 N과 A도시의 상점 수인 M이 주어진다. (1 ≤ N, M ≤ 500,000) 두 번째 줄부터 N + 1번째 줄까지는 A도시의 각 시민이 마스크에 소비할 수 있는 돈의 범위인 Li, Ri가 www.acmicpc.net 20 Summer SUAPC Div 2에서 이 문제 처음 봤는데 범위가 최대 10^18인걸 보고 대회때는 그냥 패쓰했다 그때 당시에는 수 범위가 큰 거는 그냥 패스하자는 마인드가 있었어서 패쓰했는데 ​ 두 달쯤 전에 이거 다시 풀었었는데 잘 모르겠어서 결국 풀이를 봤고, 풀이대로 했는데도 계속 틀려서 미뤄뒀던 문제 ​ 근데 다시 보니까 두 달 전에 틀렸던 이유는 내가 multim..

Programming 2021.04.26

[CF] Round #555 (Div. 3) _ 210118

(2021년 1월 20일에 작성한 글입니다.) Dashboard - Codeforces Round #555 (Div. 3) - Codeforces codeforces.com A. 그냥 구현 input의 일의 자리가 0일 수 있다는 점을 체크해야 하고 수가 줄어들어서 일의자리 수가 되면 그냥 +9를 하고 끝내면 된다는 점을 유의해주면 된다 int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll N; ll ans = 0; cin >> N; if (N % 10 == 0) { ans++; N++; } while (1) { //다시 if (N / 10 == 0) { ans += 9; break; } do { ans++; N++; } while (N %..

Programming 2021.04.26

[CF] Round #696 (Div. 2) _ 210119

(2021년 1월 20일에 작성한 글입니다.) Dashboard - Codeforces Round #696 (Div. 2) - Codeforces codeforces.com A. 그냥 구현 현재 값이거나 현재값 + 1이면 되는데 일단 +1이 되는지를 살펴보고 안되면 현재 값을 넣으면 됨 막 안 되는 경우... 그런거 생각할 필요가 없음 너무 복잡하게 생각해서 시간 많이 잡아먹었다... int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int TC; cin >> TC; while (TC--) { int N; int i; string s; cin >> N; cin >> s; vector ans(N); bool flag[3]{}; for (i = ..

Programming 2021.04.26

[BOJ] 20548 칠리소스

(2021년 1월 16일에 작성한 글입니다.) 20548번: 칠리소스 용광이는 72칠리 소스를 좋아한다. 용광이는 어떤 칠리 소스를 살지 고민중이다. 이 칠리 소스는 1단계부터 727,272단계까지의 매운맛이 있다. 72칠리 소스는 인하대학교 72호관에 있는 공장에서 제 www.acmicpc.net 문제를 정리하면 가능한 칠리 소스의 맵기를 오름차순으로 나열 한 후 앞에서부터 1단계부터 차례로 번호를 매길 때 내가 고른 소스는 몇 단계인가? 이다. ​ 처음에 메모리 초과로 틀렸는데 int 형을 사용해서 오버플로우가 나와 while문이 계속 돌아서 그랬다. long long으로 바꾸니까 맞았다. ​ chilli 라는 벡터를 만들어줘서 처음에 0을 넣고 n은 1부터 시작해서 매번 7배가 된다. 그리고 기존에..

Programming 2021.04.26

[BOJ] 20543 폭탄 던지는 태영이

(2021년 1월 16일에 작성한 글입니다.) 20543번: 폭탄 던지는 태영이 시험을 망친 태영이가 인하대학교에 폭탄을 던진다! 인하대학교는 N×N 크기의 정사각형 모양의 땅이다. 인하대학교의 모든 땅은 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c) www.acmicpc.net 와... 진짜 신기한 문제다... 처음 풀이는 가장자리부터 값이 남아있는지 확인하고(시계 반대방향으로 돎) 만약 남아있다면 M * M 영역을 돌면서 값을 빼주는 걸 반복했다. 시간 안에 해결할 수 있을 줄 알았는데 역시 어림도 없었다. 그렇게 한참 고민하다 결국 풀이를 봤다 https://altheajang.blogspot.com/2021/01/ps-boj-20543.html 놓친 포인트는 1. 굳이 가장..

Programming 2021.04.26

[CF] Round #552 (Div. 2) _ 210109

(2021년 1월 14일에 작성한 글입니다.) Standings - Codeforces Round #552 (Div. 3) - Codeforces codeforces.com 200108에 #695를 하고 충격을 받은 채로 있다가 한 시간 뒤인 2:30부터 4:30까지 했다. ​ ​ A. 수들이 순서가 뒤죽박죽인 채로 들어온다는 부분을 처음에 놓쳐서 좀 헤맸다. 정렬 한 다음에 가장 큰 값에서 나머지 세 값들을 하나씩 빼서 출력하면 된다. int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll arr[4]; int i; for (i = 0; i > arr[i]; } sort(arr, arr + 4); cout > ..

Programming 2021.04.26

[CF] Round #553 (Div. 2) _ 210113

(2021년 1월 14일에 작성한 글입니다.) Standings - Codeforces Round #553 (Div. 2) - Codeforces codeforces.com 번개 버추얼을 돌았다 결과는 2솔 ​ ​ A. 그냥 구현하면 된다. 나는 두 알파벳 사이의 거리를 구하는 함수를 만들어서 substring과 ATCG와 비교하여 각각의 거리를 더했고 그 중에 최솟값을 찾았다. int diff(char a, char b) { return min({ abs(a - b), abs(a + 26 - b), abs(b + 26 - a) }); } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; string s; int i, j; int..

Programming 2021.04.26