본문 바로가기

잡담

2020 IUPC 후기

 

2020 인하대학교 프로그래밍 경진대회 (IUPC)에 참가해 1등을 했다.

 

 

팀원 

 

ANZ1217, ik_e, Envil_Saintan


타임라인

대회가 완전한 온라인으로 진행된다는 말을 듣고 우리 팀은 모이지 않고 디스코드로 대화하면서 대회를 진행하기로 했다.

 

나는 A번부터 차례대로, 나머지 팀원들은 각각 중간부터, 뒷문제부터 풀며 일단 문제들을 훑기로 했다.

 

 

대회 시작 직후에 A, B번을 봤는데 쉬운 문제였고, 바로 제출했다.

 

0:01 A정답

0:03 B정답

 

 

다음으로 C번을 봤는데 LCS인것 같았다.

바로 풀려다가 문제가 너무 더러워서... 다른걸 먼저 보고 오기로 했다.

 

뒤를 보던 ik_e가 J번이 쉬워보인다고 했다.

실제로 쉬운 문제이긴 했는데, 문제 디스크립션에 문제가 있었다.

문제에 매운 맛의 "단계"를 출력하라고 되어 있었는데, "단계"가 정확히 무엇인지 문제에서 정의를 해놓지 않았다.

 

나와 ik_e가 예제 입출력을 비교해보고 "단계"가 만들 수 있는 매움의 정도가 몇 번째로 작은 값인지를 뜻하는 말이라는 사실을 알아냈고, 그대로 코드를 짜서 제출했더니 맞았다.

 

ik_e가 이걸 우리가 유추해서 풀어야 되냐고 불만을 터뜨렸다.

이후에 다른 팀이 이에 관련된 질문을 운영에 했는데, "문제와 예제를 다시 한 번 참조해주세요" 라는 답변이 돌아왔다. ㅋㅋ

 

0:12 J정답

 

 

이 시점에서 문제들의 난이도를 대강 다 알 수 있었다.

나는 딱 봐도 구현문제인 H번을 풀고 있기로 했고, 나머지 팀원들은 각자 본 문제들 중 쉬운 문제들을 풀기로 했다.

 

내가 구현에 고통 받고 있는 동안 팀원들이 3문제를 풀어주었다. (나는 D와 G를 읽지도 않았다)

 

0:32 D정답 (Envil_Saintan)

0:38 G정답 (ik_e)

0:47 C정답 (Envil_Saintan)

 

 

H번을 푸는데 뭔가 예제가 이상한것 같아서 ik_e를 불러서 같이 디버깅을 했다.

분명 혼자 볼 때는 예제가 이상했는데, 같이 디버깅을 하다보니 이상한건 예제가 아니라 나였다는 사실을 알게 되었다.

 

1:01 H정답

 

 

팀원들이 각자 뭔가 풀고 있었고, 나는 아무도 안건드리고 있는 I번을 풀기로 했는데,

ik_e가 일단 그 문제는 파싱을 해서 그래프를 구축해야 된다고 했다.

 

그래서 일단 그래프를 만들었는데, 문제 디스크립션에 또 문제가 있었다.

문제에서는 "정점 A에서 B로 이동 시간이 Z"라고만 나와있고, 이것이 정점 A와 B사이의 단방향 간선인지 양방향 간선인지 말이 없었다.

그 외에 그래프가 단순그래프인지 여부도 문제에 나와있지 않아서 이걸 다 고려하면서 그래프를 만들어야 하는지 아닌지 알 수가 없었다.

 

일단 풀이를 작성했고, 간선이 단방향인지 양방향인지만 알면 문제를 해결할 수 있었다.

운영측에 입력되는 그래프가 단방향인지 양방향인지 여부에 대해서만 질문을 했고, 다행히도 답변을 해주었다.

팀원들과 함께 디스크립션에 대한 욕을 쏟아내며 코딩했다.

 

1:39 I정답

 

 

Envil_Saintan이 E가 잘 안풀린다고 한다.

문제를 봤는데 그냥 dp라서 내가 풀었다.

 

1:47 E정답

 

 

남은 문제가 얼마 없었다.

ik_e는 F번을, Envil_Saintan은 K번을, 나는 L번 문제를 봤다.

 

L번도 디스크립션이 매끄럽지 않았는데, 잘 해석해봤더니 결국 4차원 세그트리를 구현하라는 문제였다.

나는 교내대회에서 삼성 역량테스트 B형같은 문제를 3번이나 풀어야 될 것이라고는 생각조차 못했다..

 

구현 도중에 K번을 팀원이 풀어주었다.

 

2:16 K정답 (Envil_Saintan)

 

 

아무튼 나는 L번 구현을 했고, 예제가 한번에 잘 돌아가길래 왜 버그가 없나 의심하며 제출했는데 맞았다.

 

2:36 L정답

 

 

남은 시간동안 다 같이 F번을 봤다.

ik_e가 어느정도 코딩을 해 놓은 상태였는데, 나는 더 이상 머리가 잘 안돌아가서 ik_e에게 맡기기로 했다.

 

대회 끝나기 직전 코드를 대강 다 짰고, 내가 약간 보완해서 제출했는데 아쉽게도 틀렸다.

나중에 보니 얻을 수 있는 최소 점수가 되는 조건을 잘못 생각한 것이었다.

 

스코어 보드를 봤는데 프로징을 감안해도 1등 확정이었다.

올솔을 못한게 조금 아쉽긴 했지만 최선을 다했다고 생각한다.


 

 

이번 대회 문제들의 질이나 난이도 분포는 나쁘지 않았다고 생각한다.

다만 프로그래밍 경진대회가 아니라 코딩테스트를 보러 온 기분이 들었다.

어려운 문제들의 대부분이 수학적으로 문제를 해결하는 문제가 아니라,

어떻게 푸는지는 바로 알 수 있지만 구현이 오래걸리는 문제들로 구성되어 있었던 점 때문이다.

물론 우리 학교에 PS를 하는 사람이 매우 적기 때문에, 변별력을 위해 어쩔 수 없는 선택일수도 있겠다는 생각이 들었다.

 

작년과 같이 이번에도 디스크립션 문제가 있었는데, 위에서 많이 깠으므로(?) 더 이상은 언급하지 않는다.

 

 

 

이 대상으로 나는 인하대학교에서 유일한 IUPC 2회 대상 수상자가 되었다. ('15, '20)

현재는 금상 이상 수상자 참가 제한이 걸려 있기 때문에 규정을 바꾸지 않는 한 유일할 것 같다.

 

작년에 다익스트라도 짤 줄 몰라서 6등에 머물렀던 것과 비교해 생각해보면 감개가 무량하다.

내년쯤 되면 저 스코어보드의 상위권 팀들 역시 지금의 나 정도의 실력이 되어있지 않을까?

'잡담' 카테고리의 다른 글

알고리즘 과목 성적  (3) 2021.07.01
근황  (2) 2021.06.23
성적 콜렉터  (0) 2020.12.30
OPIc IM2 달성  (0) 2020.12.27
2020 ACM-ICPC Seoul Regional 본선 후기 + α  (4) 2020.11.23