잡담

2025 인하대학교 프로그래밍 경진대회 (IUPC) 참가 후기

Nakuri 2025. 5. 24. 01:07

준비

2023년, BRIDGE에서 귀인의 권유로 알고리즘 스터디에 참여하게 되면서 본격적으로 알고리즘 문제 해결을 취미로 삼게 되었다. (Shout out to Sim)
 
2024년, 1년간의 공백기를 거친 후 2025년 3월부터 2025 인하대학교 프로그래밍 경시대회(이하 IUPC)를 본격적으로  준비하기 시작했다.
 
1년 동안 컴퓨터를 거의 켜지도 않았던 터라, 완전히 바닥부터 다시 시작해야 했다.
 
사실 학기 초에 과 내 알고리즘 학술 소모임인 CTP에 들어가고 싶었지만, 활동 직전에 일정이 변경되면서 이번 학기에는 함께하지 못했다.
 
다행히 주변에 또 다른 귀인이 있어 방향성을 제시받아 나아갈 수 있었다. (Shout out to Moon)
 
당장의 목표는 빠르게 준비하여 IUPC 10위 안에 들어 입상하고, 경인지역 연합 프로그래밍 경시대회 (shake!) 참가 자격을 획득하는 것이었다.
 

뉴비에서 벗어나지 못했지만

 
두 달간 나름 열심히 준비했다. 잊어버린 내용들을 다시 익히며, 멘토의 권유로 코드포스도 시작하게 되었다.
 
BOJ에서는 난이도를 숨긴 채 IUPC 기출을 포함한 여러 문제들을 풀어보며 감을 익혔다.
 
B5~G4는 대체로 무난하게 풀렸고 G3~ G1은 힘겹게 풀거나 풀지 못하는 경우도 많았다.. P5부터는 나와 정말 잘 맞는 문제의 경우에만 간혹 풀 수 있었다.
 
2024 IUPC 기준으로 12문제 중 빠른 6솔브가 수상 커트라인이었기 때문에 7솔브를 목표로 잡았다.
 

대회

시작 전부터 작은 이슈가 있었다.
 
팀 노트를 단면으로 준비해야 했는데, 양면으로 출력해 온 것..!
 
어쩔 수 없이 땡볕을 가로질러 다시 출력해 왔다. (근데 결국 안 썼음)
 
시험장인 강당은 넓고 쾌적했다. 뒤편에 요깃거리도 많길래 자리로 몇 개 챙겨갔다.
 
그렇게 고요한 적막 속에서 나의 첫 대회가 5시간에 걸쳐 막을 올렸다.
 

A번. 인경호 울타리 공사

C번까지는 쉬운 문제 고정이었기 때문에, A번부터 차례로 풀기 시작했다.
그런데 시작부터 기하처럼 보이는 문제가 등장해서 느낌이 좋지 않았다.
"각 울타리의 x2-x1 y2-y1 .. 거리를 측정해서 마름모 공식으로 .." 이러고 있었다.
10분 정도 고민하다가 남들은 다 풀길래 조급해서 일단 넘겼다.
 

B번. 신묘마루의 요술망치

다행히 B번은 보자마자 간단한 구현 문제임라는 것을 알 수 있었다.
얼른 손가락을 움직였고, 총 10분 정도 소요되어 대회 시작 20분에 첫 AC를 받았다.
 

C번. 쿠키런

간단한 그리디 문제로 보여 바로 구현 후 제출했는데 WA를 받았다.
다시 문제를 읽고 생각해 보니 사소한 부분을 하나 놓치고 있었다.
바로 수정해서 대회 37분에 두 번째 AC를 받았다.
 

D번. 인덕이와 보드게임

대회가 약 40분 진행된 시점이었기에 스코어보드를 어느 정도 참고할 수 있었다.
일단 문제가 길고, 푼 사람도 보이지 않았기 때문에 바로 스킵했다.
 

E번. 나이트 오브 나이츠

문제를 보자마자 N-Queen비숍이 생각났다.
브루트포스 + 백트래킹을 떠올렸는데, N이 4임을 보고 확신하여 바로 구현했다.
대회 57분경 제출하여 세 번째 AC를 받았다.
 
이후 문제들을 조금씩 훑어보다가 A번을 봤는데 갑자기 풀이가 보여서 제출했고 67분에 네 번째 AC를 받았다.
 

F번. 예쁘게 출력한 이진 트리

푼 사람도 없었고, 그림부터 쉽지 않아 보이길래 스킵했다.
 

G번. 삼각형 수열

마찬가지로 푼 사람도 없었고, 파스칼 삼각형 같은 그림이 있길래 무서워서 스킵했다.
 

H번. 체크박스 누르기

문제와 그림, 제한이 10^9인점을 보아 수학 문제 같았는데 바로 보이지는 않아서 잠깐 보다가 스킵했다.
 

I번. 인경호 확장판

딱 봐도 난이도 좀 있는 기하 문제 느낌이라 버렸다.
 

J번. 인덕이와 산책

문제의 J번이다. 일단 상위권 2-3명 정도가 풀었고, BFS 풀이가 추상적으로 떠올라서 시도해 봤다.
한참 고민을 하다가 제출을 했는데 결과는 MLE였다.
이후 몇 가지의 수정을 거쳤지만 결과는 마찬가지.
여기서 2시간을 허비하여 대회 시각 3시간이 경과했다.
멘탈이 박살 난 후 다음 문제로 넘어갔다.
 

K번. 징검다리의 징검다리

그리디하게 접근이 가능할 것 같았다. 바깥쪽 호수로 갔다가 돌아오는 과정에서 돌이 한 개인경우 예외가 발생하는 것까진 생각했는데, 조건 분기가 많이 생길 것 같아 겁먹고 스킵했다.
 

L번. 두 괄호 문자열

딱 봐도 지금은 풀 수 없는 문제 같아 넘겼다.
 
 
이후 스코어보드를 참고하니 초반에 넘겼던 D번을 몇 명이 풀었길래 잡아봤다.
시간 복잡도 계산을 잘못해서 대회 시각 3시간 40분경 TLE 받았고, 심장이 조여오기 시작했다.
곧 스코어보드가 프리징 되었고 당시 순위는 9위.
너무 불안했다.
다행히 DP점화식을 유도해내서 첫 제출 40분 후 다섯 번째  AC를 받았다.
하지만 이미 많은 이들이 프리징 이후 추가 제출을 한 상황이라 안심할 수는 없었다.
35분 남은 상황 문제의 J번을 계속 시도해 보았지만 세 번의 WA를 더 받고 그대로 대회가 마감되었다.
 

결과

 

총 5솔브를 하며 동상(7th)을 수상했다.
 
대회가 끝나고 돌아보니 반드시 풀어야 하는 문제를 두 개 못 풀었고, 충분히 풀 수 있을 만한 문제도 두 개나 못 풀었다.
 
실망스러운 퍼포먼스였지만 목표였던 수상shake! 시드권을 얻었으니 만족한다.
 

이후

귀여운 안뇽이와 인덕이 스티커

 
아직 많이 부족하지만 이미 발을 담근 이상 올해는 열심히 해봐야겠다.
 
팀이 없어서 UCPCICPC는 나갈 수 있을지 모르겠다. (친구가 없다)
 
혹시 저와 비슷한 실력에 관심 있으신 분은 연락주세요..
 
shake! 전까지는 코드포스 민트에 도달할 수 있도록 꾸준히 노력해볼 생각이다.
 
너무너무 보람차고 재밌었다.

728x90

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

[잡담] ChatGPT 사용기  (2) 2022.12.10