컴공 77

[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

[BOJ] 1120 문자열

1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 중간고사 준비하면서 Bash와 친해지기 위해 문제를 풀어봤다. 확실히 이렇게 하고 나니까 확 익숙해졌다! shell script 처음엔 정말.. 답답했는데 계속 하다보니까 재밌다. 나중에 심심할 때 Bash로 쉬운 문제들 풀어봐야겠다. read s1 s2 s1Len=${#s1} s2Len=${#s2} if [ $s1Len -gt $s2Len ]; then tmp=$s1 s1=$s2 s2=$tmp s1Len=${#s1} s2..

Programming 2021.04.24

[BOJ] 20930 우주 정거장

20930번: 우주 정거장 첫 번째 줄에는 우주 정거장 개수 $N$과 질문의 개수 $Q$가 주어진다. ($2 \le N \le 200\,000$, $1 \le Q \le 200\,000$) 다음 $N$개의 줄에는 $i$번 우주 정거장의 양 끝점을 나타내는 $x_{i,1}$, $y_{i,1}$, $x_{i,2}$ www.acmicpc.net 2021 겨울 신촌연합 알고리즘 캠프 중급 대회에 나왔던 문제다. 대회에서 이 문제를 풀었을 때 계속 맞는 거 같은데 틀렸고 결국 시간 내에 못 풀었다. 대회 끝나고 풀이 방송에서 BOJ 17619-개구리 점프 문제랑 비슷하다고 하셔서 내 로직대로 일단 그 문제부터 풀었는데 맞았다. 그럼 이 문제도 맞아야 한다! 싶어서 아예 처음부터 짰는데 맞았다. 그래서 대회 때 냈..

Programming 2021.04.21