2024 하이콘

2024. 9. 29. 01:04알고리즘 대회 후기

이번에 학교에서 주최하는 학교대회인 하이콘을 나갔다.(홍익대학교 프로그래밍 경진대회)

 

처음에 고사장에 딱 들어갔는데

 

귀여운 학교 마스코트 캐릭터가 나의 대회를 응원해주고 있었다.

 

그렇게 대회를 시작했고 대회문제는 https://www.acmicpc.net/contest/view/1355 에서 볼 수있다.

 

먼저 A번은 그냥 누가봐도 브론즈문제라 쉽게 풀어냈다.

그냥 배열을 순회하며 WOW의 갯수를 세면 끝이었다.

이 문제를 풀고 바로 B번으로 넘어갔는데 B번은 처음봤을 때 솔직히 감이 좀 안왔지만.. 그냥 그리디 하게 풀어냈다.

그다음이 C번인데 C번은 문제를 이해하는데 굉장한 시간이 걸렸다.. (국어 독해력 이슈) 하지만 이해를 하고나니 그냥 구현 문제라 슥슥 구현하고 맞춰냈다. D번 또한 그냥 조합론적인 수학문제라 그렇게까지 오래안걸리고 맞췄다. 이제 여기까지 꽤나 빠른시간에 풀어냈는데 문제가 E번이었다. 최근에 개발공부때문에 알고리즘을 열심히 학습하지 않은게 너무 들어나게 해주는 문제였다 ㅠㅠㅜ...

이런 문제인데 이 문제의 알고리즘은 금방 파악해냈다. ><가 되는 부분의 시작점과 끝점을 저장하고 >< 가된다면 >><<도 되는가? 를확인하며 되면 시작점과 끝점을 저장하는 하고 안될 때 까지 저장하면 승리를 하기 위해 앞면과 뒷면이 나와야하는 횟수를 구할 수 있게 된다.

여기까지는 금방 알아차렸지만 문제는 nCr을 10**9+7로 나눈 나머지를 구하는 거였다. 처음에는 그냥 아무생각 없이 nCr= n!/(n-r)!r! 이므로 그냥 2000팩토리얼까지 10**9+7 로 나눈 나머지를 dp 에 저장해놓고 꺼내 쓰려고 했다. 하지만.... 나누기는 나머지연산에 대해 닫혀있지 않았다는것을 틀리고 깨닫게 된다 ㅋㅋㅋㅋ...

그래서 이문제를 계속 고민하다가 시간이 많이가버렸고 결국 4솔로 대회를 마치게 된다. 집에 돌아와서 업솔빙해보니... 이 문제에서 nCr은 nCr=n-1Cr-1+n-1Cr을 이용하여 dp로 쉽게 나머지 연산을 할 수있었다... 전에 풀었던 문제임에도 불구하고... 너무 오래 동안 ps를 안해서 망각했나보다....

 

 

 

대회결과는 동상은 어림도 없었고...(최소 5솔)

내가 아직 2학년이기 때문에

 

저학년 특별상이라도 받게된다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ.....

4솔을 꽤나 빨리했음에도... 동상을 노리지 못한게 아쉽긴하다... 그래도 이런 기회를 준 학교에게 참 감사하다

 

이번 대회에서는 넥슨대회때와 같이 참 재밌는 시스템이 있었는데 문제를 맞출때마다

이런식으로 헬륨 풍선을 달아줬다 ㅋㅋㅋㅋㅋㅋ 집에 갈 때 가져가고싶었지만.. 지하철을 타야하기에 가져갈수는 없었다. 참 재미 있는 대회였다. 대회가 끝나고 집에갈 때 학교복도를 보는데..

 

학교가 온통 풍선이었다 ㅋㅋㅋㅋ... 이런관경은 아마 이제 다시는 못 볼 관경이 아닐까...

 

아무튼 너무 재밌는 대회였고 난이도도 적당했던것 같다.

나의 부족함을 많이 느끼는 대회였으며... ps를 다시 열심히 해야겠다는 생각을 심어준 계기가 되었으나....

 

다시 개발 공부에 바빠 ps는 뒷전으로 밀려나고 있다..ㅎㅎ....