티스토리 뷰

오늘은 UCPC 팀(민승원 - zxcv551133, 서태수 - cheetose, 남현욱 - hyunuk) 연습을 했다. 꾸사과님이 갑자기 같이 연습하고 싶다고 말씀하셔서, 같은 셋에 3 대 1로 참가하는 형태로 연습 진행. 셋도 꾸사가님이 골라주셨다.

 

셋 링크 : https://codeforces.com/gym/101967

 

초반에 엄청 말렸는데, 다행히 결과적으로 9솔브하고 25등이라는 아주 만족스러운 결과로 끝. 팀 호흡이 생각보다 훨씬 괜찮았던 것 같다. 실제 본선에 맞춰서 컴퓨터 한 대로 셋이서 진행했는데, 이런 식으로 해본 적이 한 번도 없었음에도 불구하고 풀 수 있는 수준의 문제는 대충 다 풀어낸 듯.

 

 조금 아쉬운건 패널티가 너무 높다는 거. 한 번에 푼게 딱 한 문제.. 대부분 안 받아도 될 패널티를 받은 거라 이 부분을 좀 개선하면 좋을 것 같다. 다음에는 풀이를 생각하고 짜기 전에 다른 사람과 한 번 얘기해보고 검수 후 코드 짜기 + 테스트 데이터를 반드시 예제 외에도 코너 케이스를 몇 가지 더 만들어서 돌려 본 후 제출하기를 하기로 했다. 이게 결과적으로는 패널티든 풀이 속도든 훨씬 이득일 것 같아서.

 

아래는 타임라인에 따른 풀이 후기.

 

00:07 - A WA. A번 슥 읽어보니 쉬운 문제라서 바로 붙잡고 코딩했는데 코딩 실수를 하나 해서 틀렸다. 근데 이미 풀이가 나와 있는 문제가 두 개나 더 있어서, 디버깅하지 않고 바로 컴퓨터 넘기고 다른 문제 읽음.

 

00:10 - L WA. 태수님이 L번 붙잡으셨는데 한 번 WA. 아마 사소한 실수였던 듯

 

00:12 - L AC. 곧바로 수정하셔서 정답. 이후 E 풀이를 생각하신 승원님이 곧바로 컴퓨터를 잡았다. 그동안 나는 A~D까지 문제를 읽고, 다시 A번 코드에서 틀린 부분을 찾아 둠.

 

00:17 - E WA. 뭔가 실수하셨는지 테케 1에서 WA ㅋㅋ 곧바로 다시 수정하심. 오랜만에 윈도우즈랑 VS를 쓰셔서 안 익숙하셨던 것 같다

 

00:20 - E AC. 곧바로 수정한 것 AC. 그리고 내가 다시 컴퓨터를 넘겨받아서 A 틀린 코드를 수정하기 시작.

 

00:22 - A AC. 틀린 부분 고치니 바로 AC가 떴다. 다른 분들이 딱히 풀이가 나온게 없었고, 나는 (잘못된) C 풀이를 떠올려서 이어서 곧바로 C를 풀기 시작.

 

00:26 - C WA. 당연히 틀림. 다시 생각해보니 그렇게 만만한 문제가 아니었다.. 문제를 너무 단순하게 생각했음.

 

여기서부터 한참동안 문제를더 못 풀었다. 묘하게 풀이도 잘 안 떠오르고 구현도 제대로 안 되는 상황의 반복.. 태수님은 계속 H번을 붙잡고 코딩을 하고 계셨고, 그간 나머지 두 명은 각자 문제를 읽고 풀이를 생각했다. 그러다가 내가 또 G번의 (잘못된) 풀이를 떠올려서, 태수님의 H번을 킵해놓고 내가 컴퓨터를 넘겨받아 G번 코딩을 시작했다.

 

00:57 - G WA. 제대로 증명/ 확인 하지 않고 Proof by AC를 시도했는데 장렬히 전사.. 무조건 NO가 나오는 케이스라고 생각한 것들이 아닐 수 있는 듯 하여(승원님이 그럴 것 같다고 하셨는데 그 감이 맞았음. 좀 더 신중히 낼 걸 그랬다), 승원님이 그 케이스들을 좀 더 고민해보겠다고 하셨고 나는 다른 문제 풀이로 넘어갔다. 그리고 다시 태수님이 컴퓨터를 넘겨 받아 풀던 H를 이어서 품.

 

01:03 - H WA. 그리고 H 제출했는데 WA. 

 

01:14 - H WA. 한 번 더 제출했는데 또 WA. 뭔가 구현에서 많이 말린 상황.

 

이 때 승원님이 G에서 n=5일 때 안 된다고 생각했는데 되는 케이스를 찾으셨고, 그 걸 바탕으로 n=4이상이면 항상 답을 구할 수 있다는 것도 찾았다. 그래서 승원님이 다시 컴퓨터 넘겨받아서 코딩 시작.

 

01:19 - G WA. 하지만 또 WA... 결국 n=3일 때 답이 되는 경우가 있다는 것. 나와 승원님은 G에서 n=3인 케이스의 답을 다시 찾기 시작하고, 그 사이 태수님이 D의 그리디 풀이를 하나 생각하셔서 코딩에 들어갔다.

 

01:32 - D WA. 태수님은 다시 D 틀린 케이스 찾기 시작.

 

01:34 - G AC. 태수님이 D 짜는 사이에 G의 n=3 케이스를 내가 찾아서, 바로 해당 부분만 추가해서 제출. 그리고 AC를 받았다. 22분에 3솔브후 1시간 10분만에 4솔브.. 이 시점에선 상황이 엄청 안 좋았는데, 어떻게 못 푼 문제들 풀이를 차근차근 잘 떠올려서 중후반에 문제수를 착실히 잘 쌓은 것 같다.

 

G 풀고 4솔브한 상황에서 전부 다 풀이가 막혀서 생각이 잘 안 나는 상황이었다. 태수님은 D를 계속 보고 있었고, 나는 그 중에 그나마 C가 제일 풀만해 보여서 C를 다시 고민하기 시작. 승원님도 그 동안 다른 문제들을 보면서 고민.

 

01:47 - D WA. 태수님이 하나 더 수정하셨는데 여전히 WA. 이 시점에서 D 계속 붙잡고 있으면 그것도 노답인 것 같아서 태수님은 다시 아까 틀렸던 H의 디버깅에 들어갔다.

 

그리고 한참동안 생각과 디버깅의 반복 타임.. 중간에 내가 C 풀이를 어느 정도 정리해서 잠깐 컴퓨터를 넘겨 받았는데 짜려고 보니까 잘못 생각한 부분이 하나 있어서 풀이를 좀 더 정리하기 위해 다시 컴퓨터를 넘김. 태수님이 이어서 H 계속 디버깅.

 

02:20 - H RTE. 이해할 수 없는 런타임 에러. H는 다시 미궁 속으로 빠지고.. 이 시점에서 내가 C 풀이를 완성해 두었었기 때문에 다시 컴퓨터를 넘겨 받아서 C 코딩을 시작했다.

 

02:37 - C WA. 수정 후 제출했는데 WA. 다시 잘 살펴보니 잘못 짠 부분이 있어서 해당 부분 수정해서 다시 제출.

 

02:41 - C AC. 드디어 AC. 3솔브 -> 4솔브에 1시간, 4솔브->5솔브에 한시간이 걸린 상황. 이 페이스면 잘해야 6~7솔브로 끝날 것 같은 상황이었다.

 

여기서 H 디버깅을 같이 하는게 좋을 것 같아 다른 문제를 좀 고민하다가 H 문제를 승원님께 설명듣고 살짝 고민하고 있었는데, 때 마침 태수님이 H 코드에서 잘못된 부분을 찾아냄. 바로 고쳐서 제출했다.

 

02:58 - H AC ! 6솔브에 안착. 이 시점에서도 등수는 크게 나쁘지 않았다. 70몇 등인가 그랬던 걸로 기억

 

이어서, I 번이 많이 풀려있길래 다같이 I번을 한 번 봤다. 문제 설명이 잘 이해가 안 돼서.. 같이 문제가 뭔 소린지 토의하면서 읽다가 문제 이해를 마치고, 승원님과 태수님이 I번을 같이 보기 시작했다. 나는 그 동안 D의 다른 풀이와 J의 풀이를 같이 생각했다. 

 

그러다 승원님이 I번 문제 식을 잘 정리해주셨고, 이걸 넘겨받아서 태수님이 코딩에 들어갔다.

 

03:37 - I AC. 그리고 깔끔하게 I 솔브에 성공. 빠르게 7솔브로 올랐고 이 시점에서 등수가 많이 상승했다.

 

그리고 그 사이에 나는 태수님의 D번 풀이에서 잘못된 부분을 해결할 수 있는 방법 + J 풀이의 초안을 생각했다. D번의 경우 태수님이 자기 코드에서 잘못 구하는 경우가 뭔지를 찾아 두셔서, 그걸 기반으로 어떻게 하면 그 경우를 없앨 수 있을지 고민하다가 풀이를 찾았다. J는 처음에 접근했던 방법에서 조금 다르게 생각하니 풀 수 있는게 떠올랐다.

 

I AC를 받고 나서 내가 D번의 풀이를 태수님께 전달드렸고, 태수님이 바로 그 방법대로 코딩에 들어갔다. 나는 그동안 J번 풀이를 구체화하기 시작.

 

03:46 - D AC. 생각한 D 풀이가 맞았고, 깔끔하게 9분만에 한 문제를 더 추가해서 8솔브가 됐다. 바로 이어서 내가 생각해둔 J번 풀이의 코딩에 들어갔고, 태수님과 승원님은 남은 것 중에 그나마 풀만해보이는 B번 풀이를 생각하기 시작.

 

04:18 - J WA. 구현이 좀 까다로워서 시간이 꽤 걸렸다. 그리고 제출했는데 WA. 다시 확인해보니 코드에 좀 사소한 버그가 있어서(테스트 케이스를 몇 개 더 넣어봤으면 바로 AC 였을텐데 ㅠㅠ) 그 부분 고쳐서 다시 제출.

 

04:20 - J AC. 여기서 9솔브. 이후 2~30분 정도 B를 더 고민해봤지만 결국 풀이는 찾지 못하고 대회 종료.

 

B는 아마 시간이 더 많이 주어졌어도 풀기 힘들었을 문제인 것 같아서, 첫 팀연습 치고는 굉장히 만족스러운 결과를 얻은 것 같다. 틀린 제출이 너무 많은 점만 좀 고치면 꽤 괜찮을 듯. 약간 신중하게 제출하는 습관만 들여도 패널티가 많이 줄지 않을까.

 

아무튼 아주 좋은 연습이었고, 팀 구성이나 호흡이 너무 마음에 들었다. 서로서로 문제 넘겨받고 풀이 보완하고 하는 과정이 매끄럽게 잘 이루어진 것 같아서 기분이 좋았다. 특히, 그 동안 팀연습을 할 때든 개인적으로 풀 때는 초반 페이스가 좀 괜찮다가 중후반에 아예 못 푸는 일이 정말 많았는데 오늘은 오히려 중후반에 문제를 많이 잘 풀어내서 좋았다.

 

물론 아직 개선할 부분이 많긴 하지만(신중하지 못한 제출, 풀이를 떠올리는 속도가 느린 것, 문제 공유 / 넘겨받기가 약간 늦었던 것, 엄밀하지 못한 증명 등등) 그래도 너무 재밌고 좋은 팀연습이었다. 

 

태수님 다음 번 휴가인 6월은 되어야 또 팀연습할 수 있을텐데.. 좀 더 자주 연습을 할 수 없는 상황인게 아쉽다 ㅠㅠ

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함