대회 결과
학과 행사에서 진행하는 프로그래밍 대회에 참가했다.
결과는 7솔브/3등을 기록했다. PS를 시작하고 참가한 대회 중 가장 퍼포먼스와 운이 좋았던 대회다. 이 때 재학생이 아니었기 때문에 상금은 받지 못했다. (내 64만원 ㅠㅠ)
문제 세트는 여기서 확인할 수 있다.
A. 안녕 클레오파트라~ (백준 25904) (AC/+3min)
$T_i$ 범위가 작아 단순 구현으로 쉽게 풀린다.
B. 장인은 도구를~ (백준 25905) (AC/+8min)
10개 중 9개를 골라 곱할 때 최대값을 구하는 문제이다. 순서와 상관없으므로 가장 작은 하나를 빼고 모조리 곱해준다.
C. 수렵의 시간이다! (백준 25906) (AC/+105min)
겁나 어지럽게 풀었다. 4번 틀리고 맞은 이유는 3중 for문변수를 i,j,k로 쓰면서 안에 k를 또 사용했기 때문이다. 방어구를 착용하지 않아도 되므로 모든 레벨이 0인 방어구를 선택지로 추가해 $ O(5^2M^3) $ 브루트포스를 돌렸다. 특수한 알고리즘이 필요하진 않지만 지문이 이해하기 어려워 틀린 사람이 많은 것 같다.
D. 양과 늑대 (백준 25907) (AC/+20min)
인터렉티브 문제. N일 동안의 (양의 수)-(늑대의 수) 그래프를 그리면 1일에는 +1, N일에는 음수인 연속함수가 나옴을 이용해 이분탐색을 돌리면 된다. 항상 정답인 날이 있다는 것을 알 수 있다. 고등학교 수학시간에 배웠던 사잇값정리가 떠오르는 문제였다.
E. 수열의 합 (백준 25908) (AC/+26min)
거의 보자마자 떠올랐다. $ \Sigma_{i=1}^{N} a_i $를 $O(N)$에 구할 수 있으므로 $ \Sigma_{i=1}^{T} a_i - \Sigma_{i=1}^{S-1} a_i $ 를 구하는 방법으로 하면 $O(N)$에 구할 수 있다.
+ $O(\sqrt N)$ 풀이도 있다는데 한 번 익혀봐야겠다.
F. 수확의 계절이다! (백준 25909) (AC/+157min)
처음에는 이 문제가 한계점이라고 생각했지만, 예제를 그림으로 그리다 풀만하다는 것을 깨닫고 푼 문제. Map을 써서 좌표 별로 도착하는 시간을 저장하고, 다시 일반 배열로 복사해와서 이분탐색을 돌리면 된다. Map에 넣는 코드는 $O(bNlogN) $, 이분탐색 코드는 $O(bNlogK)$이다.
G. 게이트웨이 정하기 (백준 25910) (AC/+188min)
이 역시 처음에는 트리 DP에 트라이를 섞은 문제인가.. 해서 모르는게 나왔다고 생각했다. Naive하게 구현하면 $O(N^2)$인데, XOR의 특성을 이용하면 뭔가 한 번만 탐색해서 답을 구할 수 있을 것 같았다. X xor X = 0임을 이용해 출발점 하나를 지정해 BFS나 DFS 1번을 돌리고, xor 성질을 이용해 출발점 하나 당 $ O(logX) $만에 비용을 구할 수 있었다. 총 시간복잡도는 $O(NlogX)$로, 트리DP도, 트라이도 아니여서 풀 수 있었다.
H, I, J, K번
전부 어려워보였다. 7문제를 풀고 2시간 정도 남아있었고, H번을 읽었는데 선형시간 풀이도 생각하지 못했고, I번이 그나마 쿼리문제에 이해가 쉬워 시도했다. 누적합에 Mo's를 섞은 것 같아 그 위주로 생각했지만 정해는 머지소트 트리라고 한다..
아쉬움이 없었을 정도로 완벽하게 기량을 보인 대회였다. 다가오는 대회들도 이렇게 풀렸으면 좋겠다.
'후기' 카테고리의 다른 글
2023 성균관대학교 프로그래밍 경진대회 후기 (0) | 2023.03.06 |
---|---|
국방 AI 경진대회 수상 후기 (잔머리로 인공지능 대회에서 2등한 썰) (0) | 2023.01.12 |
2022 군장병 코딩경진대회 후기 (국방오픈소스아카데미 주최) (0) | 2022.09.11 |
2022 2회차 쇼미더코드 후기 (0) | 2022.07.04 |
2022 1회차 쇼미더코드 후기 (금손뱃지 획득) (0) | 2022.06.28 |