[IUPC] 2022 인하대학교 프로그래밍 경진대회 후기

윤여준·2022년 5월 23일
0

후기

목록 보기
1/1
post-thumbnail

대회 링크

https://www.acmicpc.net/contest/view/779

느낀 점 세 줄 요약

세상은 넓고 잘하는 사람은 많다...
빨리 C++을 배워야겠다.
알고리즘을 더 공부해야겠다.

후기

2022년 5월 21일에 열린 인하대학교 프로그래밍 경진대회(IUPC)에 참가하고 왔다. 결과부터 말하자면, 10문제 중에 4문제를 풀고 왔다.


34등으로 마무리 했다.

아직 알고리즘을 제대로 시작한지 6개월 정도 밖에 안 되었기 때문에, 실력을 더 갈고 닦아서 다음 대회에선 수상을 할 수 있도록 해야겠다.

원래 ICPC 대회에선 문제를 맞출 때마다 풍선을 달아준다는데, IUPC에선 현실적으로 그런 것까진 준비를 못 했다고 이런 스티커들을 주셨다. 나중에 노트북 꾸밀 일 생기면 써먹어야겠다.



대회 참가 기념으로 solved.ac 뱃지랑 배경을 받을 수 있었다. 좋다 ㅎㅎ

A번, B번

A번과 B번은 무난하게 풀 수 있는 문제들이었다. 금방 풀 수 있었다.

C번

C번부터 슬슬 어려워지기 시작했다. 나중에 보니까 C번은 아무도 못 풀었다. 나는 C번 문제를 읽고 무슨 말인지는 이해는 했는데, 어떻게 구현을 해야할지 감이 안 잡혀서 그냥 일찍 넘겼는데 좋은 선택이었던 것 같다.

D번

C번을 넘기고 D번으로 갔는데 D번은 BFS 문제 같아서 풀어보았다. 근데 평범한 BFS 문제가 아니라서 좀 시간을 많이 썼다. 심지어 구현을 하긴 했는데 시간 초과가 떠서 삽질을 엄청 많이 했다. 결국 D번은 못 풀었다.


시간 초과를 해결하기 위한 삽질의 흔적들....

파이썬을 써서 풀다보니까 시간 초과가 뜨면 자연스럽게 언어 때문에 시간 초과가 뜬 건지 의심이 갔다. 빨리 C++을 익혀서 이런 고민들은 안 해야겠다고 생각하게 된 문제다.

시간 초과만 해결했으면 맞출 수 있었을 문제 같아서 아쉽다.

E번, F번

E번과 F번 문제도 슥 읽어보니까 내가 건드릴 문제가 아닌 것 같아서 빠르게 넘겼다. 나중에 해설 들어보니까 넘기길 잘 한 것 같다.

G번

스코어보드를 보니까 사람들이 G,H,I번 문제는 꽤 많이 풀었길래 G번도 건드려봤다. 경우의 수를 구하는 문제였는데 어떻게 구해야할지 모르겠어서 넘겼다. 해설을 집중해서 들은 건 아니라서 자세히 기억은 나지 않는데, 직접 노가다로 계산하면 되는 것 같았다. 좀 더 잡고 풀어볼 껄 그랬다.

H번

H번 문제도 스코어보드를 보니까 사람들이 많이 풀었길래 도전해봤다. 얘도 끝없는 삽질 끝에 겨우 맞췄다. 그래도 이 문제를 못 풀었으면 3솔이었을텐데 다행히 풀어서 4솔로 마무리 할 수 있었다.



끝없는 삽질의 흔적들...

일단 출력 초과를 해결하는게 굉장히 힘들었다. 분명히 코드를 보면 이상한 부분이 없는 것 같고, 출력도 제대로 나오는 것 같은데 어디서 오류가 난다는 건지 알 수가 없었다. 그러다가 코드에서 변수를 초기화시켜줄 때 변수가 가질 수 있는 최댓값인 10^9으로 초기화를 시켜주지 않고 다른 값으로 초기화를 시켜준 걸 발견했고, 이를 고쳤더니 일단 출력 초과는 해결되었다. 난 아직도 왜 출력 오류가 뜬 건지 모르겠다.

이제 문제는 그 다음인데, 분명 예제 코드는 다 맞는데 계속 '틀렸습니다'가 나왔다. 맞왜틀?? 항상 알고리즘 문제 풀 때마다 느끼는 거지만 반례 찾는게 가장 힘든 것 같다. 처음부터 코드를 잘 짜는 연습을 해야겠다고 느꼈다.

겨우겨우 반례들을 찾아서 코드를 수정했고, 맞출 수 있었다.

I번

스코어보드를 봤을 때 A,B번 다음으로 가장 많은 사람들이 맞췄던 문제였다. 당연히 쉬울 줄 알고 풀었는데 이 문제도 쉽진 않았다. G번이랑 H번보다는 적게 틀리긴 했는데, 그래도 이 문제도 약간의 삽질을 거쳐서 풀 수 있었다.

J번

J번은 쳐다도 안 봤다...

느낀 점

아직 1학년인 걸 감안하면 4솔도 나쁘지 않은 성적이지만, 더 공부해서 다음 번 대회에서는 수상을 노려봐야겠다. 수상 컷이 대략 6솔 정도였던 걸로 기억하는데, 할 수 있지 않을까..?

토요일에 하텍에 갇혀서 5시간 동안 알고리즘 문제를 푸는 재밌는 경험을 할 수 있어서 좋았다.

잘하는 사람들이 이렇게 많다는 걸 다시 한 번 느낄 수 있는 대회였다. 자만하지 말고 더 열심히 실력을 갈고 닦아야겠다는 걸 느낄 수 있었다. 우선 이번 여름 방학 때 백준 플레를 찍는 걸 목표로 공부를 해야겠다.

파이썬으로 풀다보니까 시간 초과가 뜨면 언어 때문에 이러는 건가 괜히 의심이 가게 되는데, 이를 막기 위해서 C++ 공부를 해둬야겠다고 생각했다.

맨날 푸는 알고리즘만 풀지 말고 다른 알고리즘들도 풀어야겠다고 느꼈다. 문자열이라던지, DP라던지 ...

코드를 처음 짤 때 잘 짜는 걸 연습해야겠다고 느꼈다. 코드를 치기 전에 미리 종이에 설계를 하고 코드를 치면 좋지 않을까 싶다.

profile
Junior Backend Engineer

0개의 댓글