Codeforces Round 1072 (Div. 3) 후기

NeCu1029·2026년 1월 18일

대회 후기

목록 보기
6/14

2026년 1월 12일~13일에 진행한 Codeforces Round 1072 (Div. 3)에 참가했습니다. 총 5문제를 해결하여 퍼포먼스 1793을 기록하였고, 레이팅은 74점 상승한 1576이 되었습니다.

[0:02] A. Social Experiment [AC]

nn명의 사람을 2~3명으로 이루어진 팀으로 나눈 뒤, 이 팀을 두 그룹에 적당히 분배해 그룹의 인원 수 차이를 최소화하는 문제입니다. 간단한 조건 분기로 풀 수 있어 빠르게 해결했습니다.

[0:07] B. Hourglass [WA]

예제를 손으로 풀어 보면서 규칙을 찾아 갔습니다. 모래시계를 계속 뒤집는 동안 s<ks<k이면 모래가 떨어지다가 멈추는 것을 일정 주기로 반복하고, 그렇지 않으면 모래가 모두 떨어지는 순간에 뒤집는 것과 동치임을 확인했습니다. 이를 따라 구현해 보았지만, WA를 받았습니다.

[0:17] C. Huge Pile [WA]

사과 더미를 반으로 나누는 것을 반복하기 때문에, 이진수로 접근하면 되지 않을까 생각했습니다. 그래서 Python의 bin 함수를 사용해 구현해 보았지만, WA를 받았습니다.

[0:24] B. Hourglass [AC]

C 제출 이후 B에서 WA를 받은 것을 확인했습니다. 손으로 몇 가지 케이스를 입력해 보니, s>ks>k일 때 반례가 있음을 확인했습니다. "모래가 모두 떨어지는 순간에 뒤집는 것과 동치"인 것이 뒤집는 동안에는 적용되지만, 방을 떠난 후에는 적용되지 않는 것이었습니다. 이를 수정하여 AC를 받아냈습니다.

[0:27] C. Huge Pile [WA]

C번에서도 WA가 뜬 것을 확인했습니다. 조금 더 생각해 보니, 그래프 탐색으로 해결할 수 있겠다는 생각이 들었습니다. 그래서 BFS를 구현하고 제출했으나, WA를 받았습니다.

[0:46] D. Unfair Game [AC]

문제를 잘 읽어보면 이진수 표현에서 1인 비트의 개수로 성공 여부를 판정할 수 있음을 알 수 있습니다. 자연수 nn에 대해 비트의 개수는 O(log⁡n)O(\log{n})이므로, 조합을 직접 계산하여 경우의 수를 구했습니다.

[0:48] C. Huge Pile [AC]

WA가 한 번 더 떴고, 디버깅을 시작했습니다. 얼마 지나지 않아 n=kn=k일 때 예외 처리를 하지 않았음을 알게 되었습니다. 이를 추가하여 AC를 받았습니다.

[1:36] F. Cherry Tree [CE]

E에서 아이디어를 얻지 못해 F로 넘어왔고, 트리 DP임을 쉽게 알 수 있었습니다. 각 정점별로 해당 정점을 루트로 하는 서브트리에서, 자손 정점을 흔든 횟수를 33으로 나눈 나머지가 xx가 되도록 할 수 있는지 여부를 관리했습니다. 재귀를 사용하기 때문에 C++로 코딩했지만, 정작 제출을 Python으로 해 CE를 받았습니다.

[1:37] F. Cherry Tree [AC]

CE가 뜨자마자 언어를 바꾸어 다시 제출했고, AC를 받았습니다.

결과

퍼포먼스 1793, 레이팅 변화 +74로 매우 좋은 성적을 거두었습니다. 24점만 올리면 블루에 가는데, 앞으로 더 열심히 해야겠습니다.

profile
경기과고 43rd

0개의 댓글