Programming Contests

2020 ACM-ICPC Seoul Regional 예선 준비 및 후기

suhwanc 2020. 11. 8. 06:39

벌써 예선을 치른 지 1달이 다 되어가지만.. 더 늦으면 완전히 까먹어버릴까 봐 여기 기록을 해둬야겠다.

 

보통 이런건 한 7문제씩 푼 사람들이 쓰지만 ㅠㅠ 상승 곡선을 그리기 위해 올해부터 적는다!

 

 

아직 2학년이라 올해 처음 acm에 참가하였지만, 우리 학교가 워낙 알고리즘 불모지이기 때문에 학교에서 참가한 팀은 우리 팀 밖에 없어 우리가 자동으로 학교 1위 팀이 되었다. (해당 과목 교수님은 정말 대단하신데 ㅠㅠ)

 

덕분에 모자란 실력에도 불구하고, 본선을 목표로 공부했고 팀원들 모두 어느 정도 본선은 갈 것이라 생각했다. 

(결과는 뒤에 나와요 ㅎㅎ)

 

잠깐 참가하게 된 과정을 말해보자면..

나는 작년에 PS(Problem solving)를 처음 접했고, 작년 2학기에 c++을 배우고 겨울부터 본격적으로 기초적인 dp, 트리, 그래프 등을 공부하였다. 

 

지금 생각해보면 PS가 지금까지 많은 도움이 되었다고 생각한다. 특히 저학년 프로그래밍 과목 같은 경우, 백준 저지에서 100문제만 풀었어도 실습실을 씹어먹을 수 있고, 조금만 더 공부하면 알고리즘 과목도 상당히 할 만하다고 느껴지기 때문이다. 신입생분들이 이걸 보신다면 지금 당장! 백준 하세요!..

 

새벽이라 말이 새는데.. 아무튼

기초적인 알고리즘을 공부하면서 백준에서 300문제 정도 풀었었다(지금은 750문제정도)
그런데 PS를 해보신 분들은 아시겠지만 이걸 하다 보면 사람이 끝없이 겸손하게 되기 때문에.. 뭔가 공부할 거리랑 목표를 만들게 되었다.

 

그렇게 종만북과 acm 본선 진출, 코드 포스 블루를 목표로 잡았고, 올해 2월부터 우연히 뜻이 같은 분을 만나게 되어 지금까지 공부를 하고 있다. 

(현재 종만북은 다 보긴 했으나.. 얼렁뚱땅 넘어간 느낌이라 다시 봐야 할 것 같고, 코드 포스는 민트 따리이다. ㅠ)

 

본격적으로 acm을 준비한 건 예선 1달 전쯤이었는데, 예선 팀 등록을 하고부터 시작했던 것 같다.

 

준비 방식은 일주일에 2번씩 모여서 기출문제를 한 세트씩 같이 풀고 리뷰하는 형식이었다.

하지만 백준 solved.ac 티어 기준 플래티넘만 넘어가도 못 푸는지라.. 항상 골드까지만 풀고 끝냈다.

보통 학교 1위 팀 기준으로 골드 문제까지 모두 풀면 뭘 해도 본선은 간다는 데이터가 있어서..

 

아무튼 이렇게 준비되어있지 않은(?) 상태에서 대회를 보았고 결과는 망했다 ㅠㅠ

 

 

우리 팀은 E, I, K 번 총 3문제를 풀었고 F번을 풀다가 끝이 났다.

 

I번

실버4 수준의 단순 정렬 문제였고, 지금 확인해보니 8분만에 풀었다.

 

E번

골드4 수준 유니온 파인드 문제였고, 처음에 유니온 파인드 없이 단순히 카운트하다가 시간을 조금 잡아먹었다. 26분 걸렸다.

 

K번

E번과 비슷한 난이도의 다익스트라 문제였고, 이것도 처음에 그냥 bfs로 짰다가 2번 틀려버렸다. 여기서 1시간이나 걸렸다!! 지금 보니 여기서 시간 엄청 썼군..

 

이후 1시간 반 동안 그나마 많이 풀린 F번을 도전했지만.. 명확히 떠오르는 것 없이 셋 다 헤매다가 끝이나버렸다..

차라리 L번을 도전했으면 어땠을까 하는 아쉬움도 있는데, 아마 못 풀었을 거 같다.

 

끝나고 보니 이 두 문제는 골드1 수준이었다. 내년에는 꼭 풀어야지!

 

결과는 약 350팀 중 121등을 했다. 목표는 한 7~80 등이었는데, 한참 모자라서 풀고 난 후 크게 좌절했다 ㅠㅠ

 

그렇게 본선은 물 건너갔구나.. 싶었는데

 

 

대학 1위 팀 버프를 받아 본선에 가게 되었다 ㅎㅎ

 

우리보다 잘하는 팀이 위에 널렸었는데 가게 되니 뭔가 농어촌 특별 전형 같은 느낌이 들긴 하지만.. 기왕 간 거 딱 10팀만 이겨보고 싶다 ㅎㅎ