본문 바로가기

기타/후기

SUAPC 2021 Summer 참가 후기

반응형




2021 신촌지역 대학생 프로그래밍 대회 동아리 연합 여름 대회[SUAPC 2021 Summer]에 재석이와 상우형과 함께 "스파르타Rebro클럽"이라는 팀명으로 참가하였다. (나 : Rebro / 재석 : whitehorse / 상우형 : 9114jin)

 

문제 : https://www.acmicpc.net/category/detail/2757
해설 : https://archive.suapc.kr/2021s/solution

 

 

성적은 예상보다 훨씬 높은 2위(현대 오토 Forever 상)를 차지했다.

 


이전 강사 후기에서도 언급했듯이 객관적인 전력이 6~8등 정도라고 생각했던 거에 비해 매우 만족스러운 성적이다. 물론 이전 대회에 참여했던 잘하는 사람들이 조금 빠져나가기도 했지만, 단순 티어나 레이팅으로 봤을 때 꽤나 준수한 수준의 팀들이 많았고, 20, 21학번들의 기세가 무서웠기 때문에 객관적인 전력을 6~8등으로 평가했다. 1인 1PC가 가능한 대회에다가 solved 다이아는 쉽게 찾아볼 수 있었고 코포 오렌지가 있는 팀도 3~4팀이었으니...
게다가 내가 서울에 갈 수 없는 상황이어서 각자 집에서 온라인으로 진행하는 단점도 있었는데 잘 극복한 것 같다. 의외로 팀원들은 조금 높은 등수를 예상했던 것 같다😅

하지만 L을 풀고 충분히 1등도 노려볼만했기 때문에 많은 아쉬움이 남긴 했다. (open contest에서도 계속 틀려서 아쉽지 않게 되었다.... 그래도 다이아 문제의 풀이를 제대로 떠올렸다는 거에 만족한다)

 

2021.08.29 22:45 기준 난이도

 

open contest 결과


본 대회랑 open contest의 결과가 조금 차이가 난다. open contest에서 G가 거의 풀리지 않은 반면 본 대회 땐 꽤 많이 풀렸고, 본 대회 때 J가 0 솔브였던 반면 open contest에선 꽤 풀렸다. G를 풀어서 기분이 좋기도 하면서 J를 잡았으면 어떨까 하는 아쉬움도 있다.

문제는 A ~ D를 whitehorse가, E ~ H를 9114jin이, I ~ L을 내가 읽었다.
A, C, D, E, F, G, H, K 8문제를 풀었고 A, D는 whitehorse, 나머지 C, E, F, G, H, K는 내가 해결했다. 물론 팀원들의 서포팅이 있었고, 자세한 과정은 타임라인에 작성하였다.

사실 나도 느꼈고 팀원들도 느꼈는데, 내 컨디션이 대회 당시에 매우 좋았다. UCPC의 대참사 이후로 계속 팀원들끼리 하던 얘기가 대회날 나의 컨디션이었는데, 실전에서 이렇게 머리가 잘 돌아간 적이 있을까 싶을 정도로 컨디션이 좋았다. 특히 요즘 PS를 별로 안 했는데도...

우리 팀의 실력이 고른 편이 아니기 때문에 아무래도 내가 차지하는 비중이 매우 컸는데, 내가 말리면 주변에 꺼내 줄 사람이 없어서 많이 걱정을 했다. 다행히도 2~3번의 연습 과정에서 꽤 많이 그런 단점들을 보완하고 전략을 세우면서 대회 때는 그런 불상사가 발생하지는 않았다.


* 여담으로 UCPC 후기는 너무 망해서 쓰지 않았는데 가장 큰 원인은 내가 다익스트라로 최장거리는 구할 수 없다는 것을 몰랐다. 왜 1년 넘는 PS 기간 동안 이걸 몰랐는지 나도 모르겠다. 덕분에 제한이 애매한가 싶어 fastio를 가지고 오거나 최적화를 하는 등 엄청난 뇌절을 했다. 팀원들은 다익스트라를 잘 모르는 상황이라 나를 뇌절에서 꺼낼 수도 없었고 그 결과 골드 문제에 말려 3 솔로 예선 탈락했다. 현타가 매우 심하게 왔고, 이때의 결과로 SUAPC 목표가 낮아지기도 했다.

 

보고 싶지 않은 스코어보드...

 

 

  1. 팀 결성

 

세 번째 참가하는 SUAPC 대회. 신기하게도 매 대회마다 팀 구성원이 완전히 다르고 모이게 된 계기나 친분도 다르다.

첫 대회 때는 신청 마감 직전에 겨우 학회에서 팀을 구해서 "처음보는사람들끼리신청마감1시간전에만든팀" 이라는 팀명의 서로 초면인 팀(dart, seastar105)이 결성되었다.
두 번째 대회는 weasel의 주도하에 rhksdn6227과 '좋은 성적을 거두기 위한 팀'이 결성되었는데, 나 ↔ weasel ↔ rhksdn6227 이렇게 친분이 있던 상태여서 rhksdn6227과는 잘 모르는 사이였다.

반면 이번 대회는 내가 주도하여 팀을 구성했다. 대회 규정으로 인해 이전 팀이 해체되고 새로운 팀을 찾아야 했는데, 생각한 선택지로는 두 선택지가 있었다.

(1) 1~2등을 노릴 수 있는 팀
(2) 성적보단 재미를 위한 팀

사실 대회의 성적이 좋아야 재미도 있기 때문에 (1)을 우선으로 생각했다. 하지만 여름 SUAPC는 대부분 미리 결성된 ICPC 팀으로 출전을 하기 때문에 괜찮은 팀을 구하기가 어려웠다. 그래서 결국 성적은 내려두고 재밌게 참가하자고 생각해서 3명이 모두 친한 팀으로 팀원을 모으려고 했다.
그 결과 졸업생이 아니면서 친한 학과 동기와 선배이고 서로 친분이 있는 whitehorse9114jin에게 연락을 했는데, 마침 둘 다 참가 의향이 있어서 팀이 결성되었다. 어쩌다 보니 성적과 재미를 둘 다 얻었다 :)

팀명은 whitehorse의 추천으로 지어졌는데, 사실 난 스파르타코딩클럽이란게 있는 줄 몰랐다. 팀명을 정할 때쯤 내가 팀원들에게 문제 열심히 풀라는 약간의 압박을 넣고 있었는데 그걸 본 팀원이 갑자기 팀명을 떠올렸다.

 

나도 몰랐는데 팀원을 구할 때 이런 멘트를 했더라...


알고리즘을 독학으로 공부할 때 주변에서 시키는 거 없이 혼자 찾아 공부하는 게 꽤 힘들었던 기억이 있어서, "나중에 고마워할 거야"라는 꼰대의 마인드로, 어차피 코테 대비도 해야 할 겸 열심히 하라고 채찍을 많이 휘둘렀다. 그런 부분에 있어선 조금 미안했지만... 그래도 잘 따라와 주고 열심히 해줘서 너무 고맙다.

팀명 때문에 우스갯소리로 팀원들로부터 "상금보다 Rebro의 명예가 달려있다"는 말이 많이 나왔다... ㅋㅋㅋㅋㅋ
팀원이 누구든 간에 어쨌든 스코어보드엔 내가 적혀있고, 다들 지켜보고 있으니 아래 등수에 위치하기가 싫었고 은근 부담도 되었다.

 

  2. 대회 준비 과정


대회 준비는 7월부터 본격적으로 시작했다. 팀을 구성할 당시 나를 제외한 두 팀원의 solved 티어는 골드였다.
'1 다이아'와 '2 골드'의 팀 구성만 봐도 언밸런스하다는 걸 볼 수 있다. 심지어 두 팀원 모두 한동안 PS를 하지 않은 상태였다. 그래서 당장 눈으로 실력의 상승 과정을 볼 수 있는 건 그나마 solved 티어라고 생각해서, 대회까지 플3을 목표로 세우라고 얘기했다. 꿀 문제를 풀든, 문제수로 올리든 어떻게 플3정도만 찍으면 실력이 꽤 올라올 것이라고 생각했기 때문이다. 그리고 나름 (열심히 한다면) 현실적인 목표이기도 했다.
나도 대회 때 고난도 알고리즘을 풀기 위해 다2를 목표로 세웠었다.

 


그리고 그것이 실제로 일어났다. 최대한 캠프 연습문제를 많이 풀라고 했고, 문제들도 많이 추천해줬는데 꽤 잘 따라와 줬고, 결국 대회전까지 플3 혹은 근접하게 티어를 올렸다.

 


다2를 찍어보겠다는 나의 목표는.... 목표로 남았다...

 

7월 초에는 이런 식으로 복습 겸 dp, dfs/bfs 등의 문제들도 뽑아주긴 했다. 캠프로 인해서 오래 가진 않았지만 예열하는 단계에서는 괜찮았던 것 같다. 이쯤 많이 압박하기도 했던 것 같다😅
"그래도 하루 3문제는 풀어야지", "3문제씩 한 달 내내 풀어도 90문제밖에 안된다" 등의 쓴소리를 내뱉던 나는 8월 한 달간 AC레이팅을 단 2만큼 올렸다.... 죄송합니다...

팀 연습은 총 4번, 모두 학회 연습셋을 통해서 진행했다. 연습셋의 난이도가 높진 않아서 매번 결과는 나쁘지 않게 나왔는데, 여기에 너무 안주한 결과 UCPC의 어려운 셋을 만났을 때 단점이 너무 잘 드러났다. 그래서 이후에 연습셋을 참가할 때마다 항상 이것보다 어렵게 나온다는 걸 잘 생각하자는 마인드를 갖자고 했다.

사실 두 팀원 모두 신촌 연합 캠프 초급, 중급에 참가했기 때문에 딱히 문제 셋을 선별해서 풀거나 하지 않았다. 올라오는 필수/연습문제만 풀어도 충분하기 때문에 각자 역량을 끌어올리는데 포커스를 맞췄다.

 

  3. 대회 전략

 

우리 팀의 대회 전략은 아마 다른 팀들과 많이 다를 것 같다.
처음 팀 연습을 진행할 땐, 내가 이전 팀에서 했던 방식대로 진행을 해봤다. 각자 맡은 문제들에 대한 간략한 요약을 하고, 문제를 한번 쭉 훑는 방식으로 진행했는데 우리 팀에서는 매우 비효율적이었다. 경험이 부족했기 때문에 요약하는 것도 쉽지 않았고, 바로 못 푼 문제를 요약하는데 알고 보니 매우 쉬운 문제였거나 다른 팀원들도 마찬가지로 못 푸는 문제인 등 시간적으로 많이 비효율적이었다. 따라서 연습 셋을 참가하면서 계속해서 수정해나갔다.

결과적으로, 처음엔 문제를 1/3씩 나눠서 읽다가 내가 팀원들에게 볼 문제를 지정해주는 방식으로 진행했다. 나의 판단에 의해서 대회가 진행되기 때문에 결정 하나하나가 신중해야 했다. 팀원들에 비해 내가 그래도 문제를 보면 풀만한 문제이구나 생각할 수 있는 경험이 많았기 때문에 내가 문제를 판단하는 게 더 효율적이었다.

팀원들의 장점은 역시 수학과라 그런지 머리가 좋아서 수학적인 아이디어나 dp 같은 문제는 꽤 잘 떠올렸다. 반면 아무래도 중/고급 자료구조에 대한 지식이나 구현 능력, 속도 등은 다소 부족했다.
따라서 내가 문제를 읽고 당장 문제 해석이 안되거나 풀이가 안 떠오를 때, 팀원들이 아이디어를 떠올릴 수 있을만한 문제면 한번 읽어보라고 던져준 다음 풀이가 나오면 내가 구현하는 방식으로 진행했다.

그리고 내가 떠올린 풀이를 팀원들이 검증해주고, 반례 케이스들을 만들어주는 역할을 했는데 매우 많이 도움이 되었다.
내가 구현에서 실수를 꽤 많이 하는 편인데 그런 부분에서 만들어주는 반례는 되게 유용했다.

또 대회 땐 스코어보드를 따라가자고 했다. 풀리는 문제들만 잘 따라가도 적어도 5등은 할 수 있다고 생각했는데, 결과적으로 잘 따라가서 2등을 차지할 수 있었다. 퍼솔이 1개밖에 없음에도 불구하고 페널티가 꽤 작다.

 

  4. 대회 직전 대비

 

대회 전날엔 대회날에 항상 생각해야 할 것들을 서로 공유했다. 온라인으로 진행했기 때문에 말을 하지 않으면 서로 지금 어떤 상태인지, 뭘 하고 있는 건지 알 수 없었다. 따라서 최대한 자주 자신의 상황을 말하자고 했다.
그리고 '조금이라도 막히거나 구현이 안된다면 빠르게 버리기' , '한 문제에 3명이 붙는 시간 최대한 줄이기' 등 실전에서의 주의점들을 알려주었다.

또 특별히 전날에 한번 봤으면 하는 알고리즘들을 알려줬다. 대회에 지금까지 나오지 않았고 충분히 나올만한 주제로 '게임 이론', 'SCC', 'BCC' 를 언급했고 한번 공부해보라고 했는데 놀랍게도 BCC가 대회에 나왔다. 캠프 중급반 강의 주제로 나오기도 해서 나도 대회 직전에 잠깐 BCC를 봤는데, 이건 벼락치기로 될 문제가 아니라고 생각해서 그냥 버렸기 때문에 사실 아쉽진 않다....

대회 당일날 아침엔 이런 식으로 고급 알고리즘에 대해 간단히 요약을 했다.

 


정리해준 이유는, 애초에 팀원들이 이런 알고리즘의 존재를 모르기 때문에 자신이 구한 풀이의 시간 복잡도가 크게 나와 불가능하다고 판단할 수 있기 때문이었다. 따라서 혹시 풀이를 떠올렸을 때 위와 같은 형태가 나온다면 나에게 풀이를 던져주고 내가 구현을 하는 방식으로 진행을 하려고 약간의 벼락치기를 했다. (결국 대회에 나오지는 않았다....)

 

  5. 대회 타임라인

 

[0:09] K 1WA


I, J를 읽고 K로 넘어왔다. I는 문제가 잘 이해되지 않았고 J는 일단 쉬워 보이진 않아서 K로 넘어왔는데, 많이 나오는 유형이었다. 사실 I, J를 넘기고나서 스코어보드에 풀리는 문제로 넘어가려고 했는데 이때까지 풀리는 문제가 없었다. 그래서 K를 읽고 그리디로 풀었는데 1WA를 하자마자 그리디에 말릴까 싶어 스코어보드에 풀린 문제인 D로 넘어갔다.

[0:16] F 1WA


9114jin이 F를 잡고 제출했다가 한숨을 내뱉는 소리가 들렸다. 후에 쉬운 문제라고 아이디어를 나에게 알려주었다.

[0:17] A AC


whitehorse가 해결했다. 무슨 문제인지 아직 잘 모르는데 난이도 티어나 대회 스코어보드상에 꽤 많은 WA가 나왔던걸 보면 한 번에 잘 맞춘 것 같다.

[0:24 ~ 0:26] F 2WAAC


D를 계속 봤는데 문제랑 예제가 잘 이해되지 않아서 whitehorse에게 D를 부탁하고 도움을 청하는 F로 넘어갔다. 왜 그런지 모르겠는데 당시에 초반 20분 정도는 문제가 너무 안 읽히고 집중도 안되었다. 그래서 문제도 안 읽고 9114jin의 풀이를 그대로 코딩으로 구현했는데 다시 또 WA가 나왔다. 이때 스코어보드에 F 솔브가 많이 나왔기 때문에 이 문제가 제일 쉬운 문제라고 판단하고 다시 천천히 문제를 읽었다. 그 결과 n보다 k가 더 큰 경우를 고려하지 못했고 다시 고쳐서 AC를 받았다.

[0:28] D AC


whitehorse에게 D를 넘겨줬을 때 마찬가지로 whitehorse 또한 처음에 문제를 잘 이해하지 못했다. 그러던 중 내가 F를 풀자마자 이해가 되었다고 나에게 풀이를 설명해주었고, 나도 설명을 듣자마자 코딩을 시작해서 설명이 끝남과 동시에 바로 제출했다. 내가 제출은 했지만 사실상 whitehorse가 풀었다.

[0:39] K 2WA


9114jin이 F를 나에게 넘겨주고, K를 보러 넘어갔다. 틀린 내 코드를 확인하던 중 내가 비교 함수를 짜 놓고 정렬할 때 쓰지 않은 것을 발견했다. 그래서 그걸 고치고 믿음의 제출을 했는데 여전히 WA가 발생했다. 이전의 많은 경험을 토대로 그리디에 말리면 끝이 없다 싶어서 다시 바로 빠져나왔다.

[0:41] C AC


whitehorse가 읽고 있던 문제인데 스코어보드에 풀려있어서 내가 C로 넘어갔다. 보자마자 웰-논 문제라 내가 C를 푼다고 하고 다른 문제로 넘어가라고 했다. 9114jin이 H를 읽고 있었는데 whitehorse에게 수학 문제라며 "한번 볼래?"라고 물어봤고 내가 whitehorse에게 H 읽으라고 대신 대답했다.
C와 비슷한 유형의 2차원 dp문제가 되게 많아서 무난하게 해결했던 것 같다. 사실 초반 20분 정도는 순위에서 많이 밀려있어 조급했는데 4 솔을 한 이 시점부터 상위권으로 올라와서 조금 안도했다.

[0:53 ~ 0:57] H 2WA


이때 틀렸던 K를 제외하고 더 풀린 문제가 없었는데, H를 많이들 시도하고 있어서 나도 한번 읽어봤다. 처음엔 잘 생각이 안 났는데, 팀원들이 그리디인 것 같다고 해서 아이디어를 떠올려서 팀원들에게 설명을 해주고 코드를 짜서 제출을 했는데 WA를 받았다. 풀이 방식 자체는 맞는 것 같다고 생각했고, 다른 팀들도 WA가 쭉 박히는 걸 보고 예외 케이스가 있을 거라 생각해서 팀원들에게 여러 예시들을 만들어달라고 부탁했다.


[1:02] H AC (First solve)


반례를 계속 생각하던 중 더 많이 만드는 방법을 생각해내서 다시 팀원들에게 풀이가 맞을지 물어보았다. 일단 이전 풀이가 잘못되었다는 건 확인이 되었고 만든 몇 개의 예시들도 다 잘 나오길래 믿고 제출했다. 다행히 AC를 받았고 퍼솔을 차지하게 되었다.

[1:17 ~ 1:18] K 3WAAC


스코어보드에서 풀린 문제였던 E를 팀원들에게 맡겨두고 풀지 못했던 K로 다시 넘어갔다. 잘 생각해보니 단순히 투 포인터로 해결하면 안 될 거라고 생각해서 multiset으로 바꿔서 풀었다. 무조건 맞는다고 생각하고 제출했는데 WA를 받아서 굉장히 당황했다. 이 코드가 틀린다면 풀이 자체가 잘못되었다고 생각했기 때문에 처음부터 돌아가야 해서 막막했다. 그런데 알고 보니 while을 써야 하는데 if를 썼더라... 고쳐서 다시 제출해서 다행히 AC를 받았다.
이 문제는 처음엔 pair를 다루는 LIS로 생각했다가 작년 suapc 문제의 '마스크가 필요해'가 떠올랐다.

[1:56] E AC


G랑 E가 풀려있었는데, E를 다른 팀들이 많이 제출한 걸 보고 나도 E로 넘어갔다. 그 사이에 whitehorse와 9114jin이 여러 풀이를 떠올렸다. 처음엔 나도 그렇고 팀원도 조합론 문제라고 생각했고, 부등식, 중복 조합 등 고등학교 수학들을 여러 개 들고 왔는데, 이용하기가 힘들다고 판단했다.
그러던 중, 문자열을 변화시키는 M의 범위는 실제로 매우 작다는 걸 이용해서 dp식이 떠올랐고 팀원들에게 검증을 부탁했다. whitehorse가 약간 반신반의한 반응을 보였는데, 일단은 dp를 구현했다. 역시나 예제조차 잘 나오지 않았고, 꽤 오랜 시간 동안 디버깅을 한 결과 dp테이블의 칸이 하나 더 필요한 걸 깨달았다. 그렇게 코드를 구현한 후 팀원들에게 예시들 좀 만들어 달라고 부탁했고, 간단한 예시들은 다 잘 나와서 기도하면서 제출을 했는데 한 번에 AC를 받았다.
이 문제를 풀고 내가 벨트 꽉 잡으라고 팀원들에게 소리쳤던 것 같다....ㅋㅋㅋㅋ

[2:31 ~ 2:43] G 1WA AC


유일하게 풀린 문제인데 안 푼 문제였던 G로 넘어갔다. 9114jin에게 I를 봐달라고 하고 G를 보다가 whitehorse를 불렀다. 처음에 이분 매칭 아니냐는 whitehorse의 말을 단칼에 거절했다. 나도 그랬지만 플로우를 처음 공부하면 많은 문제들이 플로우로 보이는 부작용이 생기는 것 같다....^^
그렇게 스위핑도 생각해보고, 파라메트릭도 생각해보다가 최소 개수를 구할 필요는 없으므로 하나씩 빼는 걸로 생각을 해봤다. 그러다가 문득 다른 기지국 A로 인해 현재 기지국 B가 제거되어야 한다면 B가 원래 차지하던 범위를 어떻게 덮어줄까를 생각해보니 A가 무조건 다 덮게 되는 걸 깨달았다. 이 풀이를 whitehorse에게 검증을 받았고, 맞는 것 같다는 답변을 들은 다음 레이지 세그로 구현하면 될 것 같다고 나한테 10분의 시간만 달라고 한 다음 다른 문제로 넘어가라고 했다.
처음 제출을 했을 때 WA가 나와서 당황했는데 구간합을 구할 때 lazy 배열을 갱신하는 한 줄의 코드를 빼먹은걸 발견했다. 이 문제를 풀고 8 솔이 되었을 땐 최소 3등 정도는 하겠다고 생각을 했다.

[3:10] J 1WA


B에 몇몇 제출이 있길래 B를 살짝 봤는데 선인장을 보고 바로 도망갔다. 이후에 왠지 구글에 있을 것 같아서 검색해봤더니 웬 논문이 하나가 나왔다. 동일한 내용이긴 한 것 같아서 영어를 잘하는 9114jin에게 해석을 부탁하고 whitehorse에겐 I를 부탁하고 난 J로 넘어갔다.
사실 이 문제가 MCMF이지 않을까 생각을 했었다. 정점 개수 제한이 작고, 간선의 가중치가 존재하고, 또 플로우가 하나는 나올 것이라고 생각했기 때문이다. 그래서 한 5분 동안 그래프 모델링을 생각해봤는데 도저히 떠오르지가 않았다.
그다음 팀원들에게 "무조건 아닌 것 같은데 그냥 한번 짜서 제출해볼게" 하고 가중치가 큰 간선부터 하나씩 제거해나가는 방식의 코드를 짰는데 어김없이 틀렸다. 그러고는 이 문제를 버리고 L로 넘어갔다.

[4:48] B 2CE


스코어보드 상의 재미를 위해서 발견했던 논문 링크와 함께 "혹시 논문입니까...?"를 출력하는 코드를 제출했다. 그런데 막 제출하느라 계속 컴파일 에러가 나서 결국 스코어보드에 반영되지 않았다...ㅎ

[4:34 ~ 4:59] L 1MLE, 8WA


조금 아쉬웠던 문제이다. 사실 L은 꽤 이른 시간에 문제를 읽었었다. 처음엔 2D 세그나 펜윅을 떠올렸지만 테이프의 형태가 너무 다양해서 쉽지 않을 것 같았다. 테이프가 한 줄씩 붙여진다면 쉬운데, 꺾인 형태로 붙여지기 때문에 그에 따른 어려움이 어디서 발생할까 생각하다가 꼭짓점을 기준으로 나누어야겠다는 생각을 했고, 따라서 왼쪽 끝과 오른쪽 끝을 반드시 포함하는 구간의 최대합을 구할 수 있는 금광 세그를 떠올렸다.
하지만 팀원들이 금광 세그를 잘 몰랐기 때문에 풀이 검증을 위해서 금광 세그를 설명해야 했다.

당시 금광 세그를 설명하던 그림판 그림...


그리고 난 후 나 스스로 될 것 같다는 생각이 들었고 예전에 제출했던 금광 문제 코드를 가지고 와서 열심히 구현했다.
거의 30분 남기고 난 후부턴 팀원들은 화면 공유해둔 내 코드 구현 과정을 구경했다. 다른 문제들은 어차피 못 풀 거라고 판단했고 L 하나만 풀면 1등 할 수 있겠다는 생각이 들어 여기에 올인했다.
겨우겨우 예제가 잘 나오게 코드를 짠 뒤 제출했는데 곧바로 틀렸다. 그 뒤부턴 수많은 반례들이 나왔다. 너무 긴 코드를 짜느라 구현에서 많은 실수가 있었고, 생각하지 못한 예외 케이스들을 찾아내서 추가로 구현하고 또 거기서도 실수를 하고.... 종료 시간이 점점 다가와 많이 급해졌다.

 


그렇게 결국 맞추지 못하고 대회가 끝났다. 후에 해설을 봤을 땐 6가지 case 분류를 해줘야 하는데 그중 5가지 case만 고려를 했었다. 괜히 가능성을 봐서 좋은 성적임에도 불구하고 아쉬움이 남았다.

 

  6. 마무리

 

앞에서 언급했듯이 기대에 비해 훨씬 좋은 성적을 거두어서 만족스럽다. 사실 1등 팀과 semteo님이 애초에 넘사벽이라고 생각했기 때문에 정말 아무리 잘해도 3~4등이라고 생각했는데 semteo님이 참가하지 못하신 것도 있고, 컨디션도 좋아서 운 좋게 좋은 등수를 기록한 것 같다.
작년 여름, 올 겨울, 여름 총 3번의 SUAPC를 참가했는데 등수로는 5 → 3 → 2로 계속 상향곡선을 그리고 있다. 다음은 1등...?

등수나 참가자들의 수준을 떠나서 나 스스로가 발전했음을 느낄 수 있어서 좋다. 첫 대회 때는 정말 딱 중급 강의를 막 수강한 수준이었고, 두번째 대회에서는 조금 성장했지만 팀원의 도움이 많이 필요했었는데 이번 대회때는 스스로 어느 정도는 해낼 수 있는 수준까지 올라온 것 같다. 역시 실전 대회만큼 내 수준을 판단할만한 게 없는 것 같다. SUAPC가 꼭 계속 유지되었으면 좋겠다.

SUAPC까지 마무리하니 정말 캠프가 끝났다는 기분이 든다. 강사진을 처음 맡으면서 되게 바쁜 캠프가 되었는데 유종의 미를 잘 거두고 가서 기분은 좋다. 강사 후기글에도 남겼듯이 PS 휴식기에 들어갈 예정이다.
이전 대회의 후기를 보니 앞으로 개발 공부와 CS공부를 많이 할 거라고 썼더라... 근데 왜 반년이 지났는데 그대로일까....

좋은 문제를 만들어주시고 대회를 잘 이끌어주신 출제진분들과 검수진, 운영진분들 감사합니다 :)

반응형