연습/AllSolvedin1557

240225 팀 연습 (Yokohama 2022)

leo020630 2024. 2. 26. 04:16

대면 1컴으로 진행하였다. Hyperbolic, menborong 선배가 도와주시긴 했는데 두 분 모두 끝까지 참여하지는 못 하셨다.

 

셋 : https://codeforces.com/gym/104849 (https://www.acmicpc.net/category/detail/3481)

 

 

내가 앞, kwoncycle이 가운데, petamingks가 뒤를 보고 시작했다.

 

~0:30

요코하마는 B까지 정렬이라는 사실을 알고 있어 내가 앞을 잡았다. A는 쉬운 그리디라 무난하게 짜서 맞았다. B는 인터랙티브인데, 바로 생각이 나지 않아 팀원들에게 물어봤더니 어렵지 않게 풀이를 구할 수 있었다. 예제를 3개 정도 만들어서 돌리느라 조금 늦었지만 다행히 1번에 맞을 수 있었다.

 

~2:33

petamingks는 F를, kwoncycle은 G를 잡았다. 나는 petamingks가 넘겨둔 D 풀이를 생각하다가 G 풀이가 먼저 나와 컴퓨터를 넘겨주었다. G 구현이 더러웠는지 코딩이 좀 오래 걸렸고, kwoncycle이 많이 고통스러워 했지만 다행히 페널티를 쌓지 않고 맞았다. 나는 그 사이 솔브수와 맞지 않을 만큼 어려운 D의 풀이를 찾아내었고, 남은 시간은 petamingks와 F에 대한 토론을 했다. 그러다 컴퓨터가 비어 별 다른 결과는 얻지 못하고 D를 짜러 갔다.

 

~3:22

30분 넘게 걸려 짠 D 코드가 예제조차 제대로 뱉지 못했다. 그 사이 kwoncycle이 F에서 뭔가 핵심적인 관찰을 해낸 듯 했고, petamingks가 빠르게 코딩해 AC를 받았다.

 

~4:43

D 코드를 열심히 고쳐 예제가 나오도록 했지만 WA를 3번 받았다. 그 사이 kwoncycle과 petamingks가 E 풀이를 완성했고, 내가 짜야만 하는 문제였기에 더 늦기 전에 D를 버리고 E를 짜기로 했다. 풀이는 그냥 세그 국밥 DP라서 빠르게 짰지만, TLE를 2번 받았다. 세그가 2차원으로 펴져 있는 것이 문제인 것 같아 세그를 열심히 펴 주었고, 그 과정에서 그냥 배열 크기를 작게 잡은 것이 문제라는 사실을 깨달았다. 왜 그랬을까? 아무튼 결국 맞았고, E를 짜는 동안 kwoncycle이 D의 간단한 풀이를 찾아와 남은 시간동안 최대한 짜 보기로 했다.

 

~5:00

내가 낸 D 사풀 코드에 다행히 핵심적인 기능이 대부분 있었고, 아슬아슬한 시간을 남기고 코딩을 끝낼 수 있었다. 마지막 2분에 좌표를 맞춰 주는 과정에서 변수 하나가 헷갈렸지만, 그냥 직감적으로 쓴 후 예제가 나오길래 59분 20초에 제출했다. 다행히 test 10까지 돌아가는 모습을 볼 수 있었고, 그렇게 6솔브로 마무리했다.

 

문제별 요약

 

A (G4, solved by leo020630) : 쉬운 그리디 문제이다. 출발 시간이 빠른 집부터 처리해주자.

B (G4, solved by leo020630) : 자리수별로 이분 탐색을 해주면 된다. 받아올림이 일어나는 구간을 찾자.

C (D3, Not solved) : 문제를 읽긴 했는데 어려운 플로우라는 생각만 들고 감이 잘 오지 않았다.

D (P4, solved by kwoncycle, leo020630) : 관찰을 하나 하면 귀찮은 구현을 좀 해서 풀 수 있다. 나는 쉬운 관찰은 못 하고 어려운 관찰을 해서 3차원 DP 같은 것을 짜다 망했다. +대회 끝나고 몇 줄 고쳐서 맞았다. 더 어렵긴 한데 별 쓸모가 없는 이상한 풀이인 듯 하다.

E (D5, solved by kwoncycle, peatmingks, leo020630) : 관찰을 하나 한 후 국밥 형태로 처리하는 세그 DP이다. 코딩이 조금 어려울 수 있을 것 같다.

F (D4, solved by kwoncycle, petamingks) : 관찰이 매우 어려운 냅색 DP이다. 신인가?

G (P2,  solved by kwoncycle) : 트리가 귀찮은 방법으로 주어지고 그 위에서 뭔가 해야 한다고 한다. 

H (D3, Not solved) : 문제를 읽지 않았다.

I (D2, Not solved) : 문제를 읽지 않았다.

J (D3, Not solved) : 귀찮은 기하 구현 문제이다. 시간이 많았으면 풀었을 것 같다.

K (D3, Not solved) : 문제를 읽지 않았다.

 

느낀 점 + 피드백

셋 유형에 따라 내가 그냥 soulless coding machine을 해도 괜찮은 것 같다.

 

이상한 짓을 하지 말자.

 

쉬운 문제는 빠르게 의논해서 풀자.

 

팀연습을 너무 돌렸더니 체력 이슈가 있는데 3일만 버티자.