본문 바로가기

Competitive Programming/Codeforces

Codeforces Round #700 (Div. 2)

 

Dashboard - Codeforces Round #700 (Div. 2) - Codeforces

 

codeforces.com

 

헐...

 

결론부터 말하자면 처참히 망했다. 퍼포먼스는 무려 1147점으로 그레이 수준이었고(...) 레이팅은 90점이 떨어졌다. 아슬아슬하게 버티고 있었던 블루에서 민트로 강등되었지만, 못해도 너무 못해서 변명의 여지가 없다. 저번 에듀 라운드에서 -30이 되었을 때는 억울해서 하루 종일 집중이 안됐었는데, 지금은 별 생각이 없다.

 

Prob. A

함정도 없고 아이디어도 간단한 문제. 이 문제를 풀었을 때만 해도 오렌지 퍼포였다. ㅋㅋ

 

Prob. B

n-1마리와 전투를 해서 살아남고, 마지막 몬스터를 죽일 수 있어야 한다. 처음엔 정렬인 줄 알고 생각나는 모든 정렬 기준을 박았는데 다 틀려서 코드를 여러 번 점검하다가 시간만 보내고 포기했다. C를 풀고 다시 보니 정렬 자체가 틀린 아이디어인 것 같아서 코드를 갈았고, n마리와 모두 전투한 뒤에 한 마리씩 비교하면 된다는 것을 늦게나마 캐치해서 해결했다.

 

Prob. C

인터렉티브형 문제. NYPC 때 한번 겪어봤던 유형이었고, 문제를 보니 로그 시간에 풀어야 되는데 구간을 좁히는 것밖에 답이 없었고 삼분탐색 비슷하게 구현해서 프리텟을 가볍게 통과했다. 코드를 너무 대충 짰는데(코너 케이스 전혀 생각 안 했고, 무한루프 여부도 보지 않았다.) 프리텟이 한 번에 뚫려서 찜찜했지만, 넘어갔다.

시 스텟에서 반 이상이 죽었는데, 그중 나도 있었다. 등수가 두배가 되는 것을 내 눈으로 봤다.

 

Prob. D1

A, B, C를 해결했을 때 2300등 정도여서 D를 무조건 푼다는 마음으로 잡았다. 문제를 읽었는데, 그리디로 푸는 것이 자명해 보였고 특이한 케이스 처리에서 사람들이 막혔으리라고 생각했다. 반례를 계속 떠올리면서 코드를 열심히 짰고, 짜는 동안 생각했던 반례들을 대입해서 허술한 부분을 고쳤다. 나름 떠올리기 힘든 반례라고 생각해서 뿌듯했는데, test 6에서 계속 막혔다. 더 이상의 반례는 찾지 못했고, 그대로 대회가 끝났다. 정해를 읽어봤지만, 아직도 내 풀이가 왜 틀리는지 모르겠다. 방법은 달라도 논리는 완벽했는데 ㅠ

 

 

보통 두 문제만 풀어도 그레이 퍼포는 잘 나오지 않는데, B의 정해 아이디어가 너무 늦게 나오는 바람에 상황이 심각해진 것 같다. C를 꼼꼼하게만 짰어도 순위가 떡상했을 것 같아 아쉬움이 남는다.

 

불과 하루 전에 PS와 CP를 놓고 고민하는 글을 썼었는데, 하루 만에 결정이 났다. 퍼플을 찍기 전에는 더 이상 심화 알고리즘 공부를 하지 않을 것이다. 블루 유지도 못하는 실력에 심화 알고리즘을 공부하는 것은 그냥 자기만족인 것 같다.

이제 1일 1버추얼을 목표로 대비하고, 앳코더에도 손을 대보려 한다. 그리고 미뤄왔던 파이썬 공부도 해야 할 때가 왔다. 알고리즘에만 빠져 살지 말고, 조금 더 생산적인 생활을 하자.