본문 바로가기

대회 리뷰/BOJ

제1회 초콜릿컵

 

제1회 초콜릿컵

 

www.acmicpc.net

A - 초콜릿 피라미드

분명히 올바른 공식인데 예제가 나오지 않았다.

대회 끝나고 같은 공식으로 다시 짜니 잘 나온다.

시그마 계산을 잘못한 것으로 추정된다.

대회 중에는 디버깅만 계속 하다가 새로운 공식으로 풀이하였다.

00:23 AC

다시는 이러한 실수를 하지 말자.

 

B - 초콜릿과 나이트 게임

K는 항상 7 또는 15일 것이라는 믿음을 가지고 제출하였다.

00:43 WA

K가 7일 때 잘못된 답을 출력함을 발견하였다.

어차피 이번 대회 망한 것 같아서 깔끔하게 새로 짜서 제출하였다.

00:57 AC

 

C - 예쁜 초콜릿과 숫자놀이

O(N) dp 풀이를 제출하였다.

01:06 WA

최댓값만 관리하면 정답을 구할 수 없음을 깨달았다.

모든 값을 고려하는 O(N MOD) dp 풀이를 제출하였다.

01:10 WA

계산 도중 overflow가 발생하나 싶어서 long long 타입을 사용하였다.

01:12 WA

여전히 WA를 받아서 차근차근 다시 생각하였다.

(화이트, 예쁜 초콜릿, 예쁜 초콜릿, 다크) 케이스를 고려하지 않았다.

해당 케이스를 고려해서 O(N^2 MOD) dp 풀이를 제출하였다.

01:26 WA

다시 보니까 말도 안 되는 코드를 제출하였다.

심지어 예제도 제대로 안 나오는 코드였다.

사실 이때 쯤에 분노 게이지가 급상승해서 예제도 돌려보지 않고 제출하였다.

멘탈 관리도 실력이다.

살짝 고치고 다시 제출하였다.

01:30 AC

 

D - 초콜릿 나눠팔기

문제 보자마자 dp 문제임을 깨닫고 열심히 점화식을 정의하였다.

02:08 WA

특정 케이스에서 중복 계산하는 오류를 발견하고 다시 제출하였다.

02:32 AC

 

E - 더블 초콜릿

매우 더러워 보였지만 A-D번을 모두 조져서 반드시 풀어야만 하였다.

Union-Find 풀이를 시도하였다.

03:38 WA

0을 1로 쓴 부분을 발견하고 다시 제출하였다.

03:54 WA

코드를 아무리 살펴 보아도 원인을 찾을 수 없었다.

멘탈이 완전히 붕괴되어서 그냥 무지성으로 다시 제출하였다.

멘탈 관리도 실력이다.

04:13 WA

고친 부분이 없으니 WA는 당연한 결과였다.

코드를 처음부터 끝까지 계속해서 살펴 보아도 도저히 원인을 찾을 수 없었다.

한참 뒤에 j를 i로 쓴 부분을 발견하고 다시 제출하였다.

04:37 AC

 

F - 초콜릿과 친구들의 습격 (not solved)

체스판의 흑백을 이용하는 문제 같았다.

하지만 구석 1칸이 격리되면 예외 처리가 필요하였다.

내가 풀 수 있는 문제가 아닌 것 같아서 넘겼다.

에디토리얼을 보니 이 예외만 처리하면 된다고 하더라.

증명이 매우 어려운 문제이다.

 

G - 초콜릿과 왕 게임 (not solved)

문제 보자마자 connection profile dp 문제임을 깨달았다.

그런데 해당 기법을 들어만 보았지 실제로 풀어본 적은 없었다.

이 기회에 배워서 풀어볼까 고민하다가 스코어보드 보고 바로 넘겼다.

 

🍫 - 초콜릿 프로그래밍 언어 (not solved)

E번까지 풀고 나니 대회 시간은 1시간 30분 정도가 남았다.

열심히 구현하였지만 대회가 끝나버렸다.

대회 끝나고도 계속 풀었는데 디버깅이 30분 넘게 걸렸다.

A-E번을 빨리 풀었으면 시간 내에 풀 수 있었을 텐데 조금 아쉬웠다.

 

추가적으로 숏코딩을 도전하였다.

2022년 10월 20일 기준 91 바이트까지 줄일 수 있었다.

 

여담

전날에 있었던 서울과기대 대회에서 큰 자신감을 얻었다.

그리고 그 자신감은 초콜릿컵에서 전부 증발하였다.

아직 많이 부족하지만 그래도 계속 열심히 해보자.

그리고 E번 특별상(Consolation Prize상, 가장 많은 오답을 제출한 후에 해결)을 받았다.

사실 특별상 받으려고 계속 틀린 것이다.