본문 바로가기

Competitive Programming/Codeforces

(33)
Educational Codeforces Round 161 (Rated for Div. 2) Dashboard - Educational Codeforces Round 161 (Rated for Div. 2) - Codeforces codeforces.com D, E가 쉽게 나와서 나름 잘 쳤다. F도 접근은 다 했는데 디테일에서 부족한 부분이 있었다. Prob. A 사실 얘는 아직도 지문을 이해하지 못했다. 그냥 예제만 보고 가능한 코드를 다 짜보니 두 번째에서 맞았다. Prob. B 뽑은 세 수 중 가장 큰 것이 다른 두 수보다 strict하게 크면 안 된다. 그래서 세 수가 모두 같거나, 두 수가 같고 남은 수가 그것보다 작은 두 가지 경우만 가능하다. 같은 수를 편하게 처리하기 위해 map을 사용해서 풀었다. Prob. C $u$에서 $v$로 갈 때 항상 일직선으로 이동하는 것이 최선이다...
Codeforces Round 917 (Div. 2) Dashboard - Codeforces Round 917 (Div. 2) - Codeforces codeforces.com 아직 작심삼일이 지나지 않았기 때문에 언레지만 참가했다. 초반부터 쭉 말렸지만 문제가 어려워서 퍼포는 괜찮게 나온 듯. Prob. A 음수의 개수, $0$의 개수, 양수의 개수를 구하고 음수를 만들 수 있는지, 0을 만들어야 하는지에 따라 경우를 나눠주면 된다. Prob. B 어렵다. 해시 써야 하나 한참 고민하다가 문자열의 길이를 고정한다고 생각해보니 풀이가 나왔다. 만들 문자열의 길이를 $m$이라 하면 뒤의 $m-1$개의 문자는 고정되고 앞에서 아무거나 하나 선택할 수 있다. 그래서 뒤에서부터 스위핑하며 개수를 관리하고 답을 구할 수 있다. 문제는 좋은데 이게 B? Prob. ..
Pinely Round 3 (Div. 1 + Div. 2) Dashboard - Pinely Round 3 (Div. 1 + Div. 2) - Codeforces codeforces.com 8개월 만에 코포를 쳤다. 지금껏 갖은 핑계를 대면서 복귀를 계속 미루고 미뤘었는데, 이제 진짜 레드 갈 때까지 멈추지 않는다. 개인적으로 조금의 운을 탄다면 레드를 갈 가능성이 있다고 보고 있고, 이번 방학 내에 달성하는 것이 목표긴 하다. 이번 컨테는 평타는 쳤지만 오랜만에 해서 그런지 미숙한 부분이 많아서 아쉬웠다. Prob. A 잘 생각해보면 원점 기준 상하좌우로 모두 움직여야 한다면 불가능하고, 나머지는 가능하다. Prob. B 자연스럽게 2로 나눈 나머지를 생각할 수 있고, 2로 나눈 나머지가 한 종류라면 4로 나눠보면 두 가지로 갈라질 수 있고, 그게 안 되면 8..
Codeforces Round #854 by cybercats (Div. 1 + Div. 2) Dashboard - Codeforces Round #854 by cybercats (Div. 1 + Div. 2) - Codeforces codeforces.com Rated Round를 오랜만에 하는 거라 걱정했는데, 다행히 선방했다. Prob. A 지문이 도저히 해석이 안 돼서 예제 보고 찍어 맞췄다. 풀이는 그냥 구현이다. Prob. B 처음에 1이 존재하면서 1이 아닌 수도 존재한다면 불가능하고, 나머지 경우에는 가장 큰 수를 가장 작은 수로 나누는 것을 반복하면 언젠가 같아진다. Prob. C C 주제에 더럽게 까다롭다. 일단 정렬하고 앞에서부터 볼 때 같은 문자가 두 개 있다면 양 끝에 붙여주는 게 최적이다. 그렇지 않고 가장 작은 문자가 한 개 존재한다면 두 가지 경우로 나눠야 한다. 이 ..
Codeforces Round #849 (Div. 4) Dashboard - Codeforces Round #849 (Div. 4) - Codeforces codeforces.com div. 4에서 되게 오래 걸린 것 치고 순위가 나쁘지 않다. 고수들이 별로 참여 안 해서 그런가 Prob. A string의 find와 npos를 쓰면 편하다. 물론 난 몰라서 못 썼다. Prob. B 해보면 된다. Prob. C 양쪽에서 될 때까지 빼면 된다. Prob. D 살짝 까다로운데, 2번 이상 등장하는 문자 중 양쪽에 모두 위치한 개수를 관리하면서 스위핑하면 된다. 더 쉬운 풀이가 있을 수도 Prob. E 음수가 짝수 개면 모두 양수로, 홀수 개면 하나 뺴고 모두 양수로 만들 수 있다. 끝에서부터 밀어주면 잘 된다. 따라서 짝수 개면 절댓값의 합, 홀수 개면 절댓값의..