PS, CP 칼럼

Team AllSolvedin1557 분석 리포트

leo020630 2024. 8. 11. 15:10

2024 WF 진출 팀인 Team AllSolvedin1557 (leo020630, kwoncycle, petamingks) 에 대한 분석을 남기기 위한 글입니다.

 

이 팀의 마지막 대회인 2024 World Final이 끝나기 전까지 계속해서 수정이 있을 예정입니다.

 

1차 출처: https://leo630.tistory.com/213

Last update: 24/03/20

 

팀원 소개

 

leo020630 (solved.ac, Codeforces)

 

팀원 중 가장 정석적인 루트로 PS를 해왔습니다. 전반적인 코딩 속도가 셋 중 가장 빠르고 그래프나 자료구조 등의 웰노운 문제를 잘 풉니다. 또한 기하, 문자열, 플로우, 기타 팀노트에 있는 사전지식들을 혼자만 쓸 수 있습니다. 대신 케이스 워크를 심각하게 대충 하는 버릇이 있어 페널티 적립을 심심찮게 하고, 두 팀원에 비해 수학, 애드혹, constructive를 못 합니다.

 

외적으로는 팀연습 셋 고르기, 후기 쓰기, 타 팀과 소통하기 등의 짬처리를 도맡아 하고 있습니다.

 

kwoncycle (solved.ac, Codeforces)

 

MO 및 CTF 출신이며 PS는 거의 하지 않았는데, 1학년 때 제가 PPC를 쉽게 우승하는 것을 보고 나도 할 수 있겠다며 PS를 시작한 범상치 않은 인물입니다. 코딩이 느린 대신 케이스 워크나 증명을 꼼꼼하게 하는 편이라 팀 내에서는 더러운 구현 문제를 주로 가져갑니다. 그 외에도 CTF에서 크립토가 주 분야인 만큼 정수론이나 constructive, interactive에 강점을 가지고 있습니다. 자료구조나 그래프도 어느 정도는 짤 줄 아는데 팀 연습에서는 제가 풀이를 듣고 짜는 것이 빠르다는 결론을 얻어서 그 뒤로는 잘 하지 않았습니다.

 

외적으로는 멘탈이 잘 나가서 한 번 수틀리면 위에 써진 장점들은 없어지고 샷건을 연발하며 10번씩 제출을 하는 광인이 남는다는 점이 있습니다. 그 외에도 클래스 미는 것이 귀찮다고 자꾸 solved.ac 디스코드에서 골드 계정으로 채팅을 치는 등 저희 팀에서 금쪽이를 담당하고 있습니다. 팀명도 이 사람이 제안했습니다.

 

petamingks (solved.ac, Codeforces)

 

역시 MO 출신이며 PS는 수학 문제 위주로 풀다가.. 딱히 변한 것은 없고 아직도 수학 문제 위주로 풉니다. 파이썬으로 문제를 푸는 탓에 코딩 속도는 빠르지만, 시간이나 숙련도 문제로 못 짜는 문제가 너무 많아서 컴퓨터를 잡는 시간은 가장 짧습니다. 대신 관찰 면에서 큰 장점을 가지고 있는데, 문제 하나에 대해 여러 방향으로 접근할 수 있는 능력이 있어서 뭔가 중얼거리다 맞는 관찰을 해 오는 경우가 많습니다. 그렇게 관찰을 하고 나면 대부분은 저나 kwoncycle에게 던지고, 수학이나 DP인 경우 본인이 코딩합니다. 컴퓨터 밖에 있는 시간이 가장 많기에 스코어보드를 보고 오더를 하는 역할이기도 합니다.

 

외적으로는 하극상으로 날뛰는 kwoncycle을 제압하는 역할을 맡고 있습니다.

 

이렇게 보면 뭔가 나사가 빠져 있는 팀 구성이지만, 저희 팀의 장점은 셋이 문제를 푸는 방식이 모두 다르다는 점입니다. 굳이 정리하자면 저는 경험으로, kwoncycle은 증명으로, petamingks는 직관으로 문제를 해결합니다. 그리고 또 하나의 장점은 팀원간 의사 소통 및 역할 분배가 아주 잘 됩니다. 저희 팀의 운영 타임라인을 적어보면 대강 아래와 같습니다.

 

초반부 (시작 ~ 1:00)

 

각자 받은 부분에서 골드 이하 문제들을 찾아 풉니다. 쉬운 문제는 보통 먼저 본 사람이 풀지만 다익스트라 등의 그래프일 경우 제가, 구현 + 케이스 워크 문제일 경우 kwoncycle이 가져갑니다. petamingks는 쉬운 수학 문제를 빨리 골라 푼 후 이때부터 재미있어 보이는 플~다 문제와 씨름에 들어갑니다.

 

중반부 (1:30 ~ 4:00)

 

중간 난이도인 플래티넘 문제들을 하나씩 해결합니다. 보통 제가 2개 정도를 풀면 kwoncycle이 1문제의 풀이를 찾고, kwoncycle의 코딩을 기다리는 동안 저는 petamingks에게 풀이를 받거나 더 풀 문제를 찾습니다. 이 시간대에 petamingks가 컴퓨터를 잡기도 하는데 대부분 무시 가능한 정도의 시간입니다.

 

후반부 (4:00 ~ 5:00)

 

이제 풀 문제가 1~2개로 좁혀집니다. 이 시간대의 경우는 보통 두 케이스로 나눠집니다.

 

(1) 남은 문제가 petamingks, kwoncycle이 도움을 줄 수 없는 유형일 때

 

플레이오프가 이런 경우였는데, 두 팀원이 K에서 할 수 있는 것이 없었습니다. 이런 경우엔 제가 해당 문제를 어떻게든 풀고 두 사람은 적게 풀린 수학 문제를 공략합니다. 이번 경우에는 L을 두 사람이 같이 봤고, 풀이에 상당히 근접했지만 아쉽게 해결하지 못했습니다.

 

(2) 그렇지 않을 때

 

셋 모두가 달라붙어서 해당 문제 풀이를 논의합니다. 셋의 접근이 다 다르기에 생각을 공유하다 보면 맞는 말이 나오는 경우가 많습니다. 서울 리저널이 이에 해당했고, H번에 모두가 달라붙어서 결국 petamingks가 해결했습니다. 풀어야 하는 문제가 구현량을 요구하면 제가 풀이를 찾지 않았더라도 컴퓨터에 앉아서 조종하는 대로 코딩합니다.

 

한국의 다른 팀과 비교했을 때에는 전반적으로 서울대의 HLD 팀 전략과 비슷한 것 같습니다. 다만 제가 컴퓨터를 잡는 비중이 조금 더 작고, 남은 두 명이 분야를 더 가린다는 차이가 있습니다.

 

이런 전략을 사용했을 때 제가 생각하는 저희 팀의 장점과 단점은 아래와 같습니다.

 

장점

 

문제에 대해 다양한 방식으로 접근하며, 이에 대한 소통이 굉장히 익숙하기에 다이아 하위 이하 문제에 대한 풀이를 매우 높은 확률로 낼 수 있습니다. 따라서 초반에 조금 말리더라도 중후반에 이를 기반으로 복구할 수 있는 힘이 있습니다.

 

위 장점과 더불어 특별한 경우가 아니라면 스코어보드를 따라가는 운영을 기반으로 하기에 저점이 높습니다.

 

셋에 수학 문제가 많을 경우 팀원 모두가 제 역할을 할 수 있어 기대할 수 있는 고점이 높아집니다.

 

많은 팀 연습으로 인해 대회장에서 비효율적인 판단을 하는 경우가 드뭅니다.

 

단점

 

풀이 도출 능력에 비해 코딩 속도가 떨어져서 중간 난이도층이 두텁고, 구현량이 많은 셋에 약합니다. 실제로 팀 연습을 거듭할수록 풀이를 잘 내게 되어서 놀다가 끝난 경우보다는 마지막까지 코딩이 밀려 있던 경우가 많았습니다.

 

셋에 저만 풀 수 있는 웰노운 문제가 너무 많을 경우 제가 말리면 팀이 그대로 멸망합니다.

 

팀원 모두 다이아 상위 이상의 문제를 풀어본 경험은 잘 없어서 엄청나게 높은 고점은 기대하기 힘듭니다.

 

저희 팀을 요약하자면 합집합은 넓은데 교집합이 좁습니다. 따라서 서로가 서로의 영역을 쓸 수 있도록 의사 전달에 있어서 많은 연습이 필요했습니다. ICPC는 결국 팀 대회기에 팀의 전력을 높이는 것이 중요하고 그러기 위해선 합집합이 최대한 넓어야 합니다. 물론 모든 팀원이 모든 분야를 잘하면 좋겠지만 그런 팀을 만드는 것은 정말 어렵습니다. 따라서 ICPC 팀을 꾸릴 때 자신과 다른 성향의 팀원을 데려온 후, 합집합을 온전히 활용할 수 있도록 연습하는 것을 추천드립니다. 사실상 이 내용이 이 글을 쓰게 된 가장 큰 계기이기도 합니다.