
들어가며
대 넥슨이 NYPC 10주년 이벤트로 대학생을 위한 판을 열어줬다.
대학에 와서 코딩에 입문했기에 싱글벙글하며 대회를 신청했다.
팀은 jinhan814, yeonee, jungh150(진), swoon 요렇게 나갔고,
모두 신촌연합이었기에 팀명은 자연스럽게 NYPC_Sinchon이 되었다.
이때까지만 해도 대체 어케 코드로 배틀한다는건지 몰랐당
연습문제. [버섯 게임]

유행했던 사과 게임을 1대 1로 하는데, 땅을 더 많이 가져가는 쪽이 이기는 게임이었다.
근데 우리 팀 모두 사과게임을 해본 적이 없어서 서로 대결해보면서 대충 감을 익혔다.
여러가지 테스트와 내전을 진행하며
그냥 더 많은 뎁스로 돌리는 팀이 장땡이라는 것을 알아냈고 jinhan814가 7뎁스인가를 짰더니 걍 절대 못이기겠더라
그래서 걍 그거냈음

첫날에 2위를 하고 다들 할일 하러가서 나중에 확인해봤는데

마지막 날까지 대충 버티긴 했음... 대진한
문제 풀며 든 생각은 확실히 PS랑은 좀 느낌이 다른거같았다.
PS하다보면 러프하게 시간복잡도만 따지지 상수깎는건 애매한 TLE가 아닌 이상 잘 안했는데
이걸 하다 보니까 연산을 두 배 줄이는 게 얼마나 중요한지 알게 되었다.
온라인 라운드. [요트 옥션]

초반

처음엔 휴리스틱 대잔치를 했다.
요트 옥션을 우리끼리 해보고 사람 입장에서 나름 괜찮은 전략을 나열해보고 적용시켜봤다.
strange bid heuristic이라는 이상한 휴리스틱을 jinhan814가 짰는데, 초반에는 좀 괜찮다가
사람들이 뭔가를 깨우친 듯 너무 잘해지길래 해볼 수 있는 게 있나 싶었다.
중반

dp에 사용한 족보의 마스크와 주사위 5개, 현재 상단합으로 최적을 구할 수 있는걸 이제야 눈치채서
전처리를 했당
근데 그걸 10Mib인가 거따 넣는게 너무 어려웠다...
그래서 투트랙으로 갔는데,
swoon은 모든 경우를 학습시켜서 현재 상태의 기댓값을 예측하는 친구를 만들었고 (학습에 32시간씀)
jinhan814은 뭐 양자화인지 어떻게 막 해서 코끼리를 지갑에 넣는 것에 성공했다.
나중에 말할 방식으로 인해 학습보다는 잘 압축시키는 것이 결과적으로 좋았다.
다 해놓고 보니까 배팅을 어케할지 잘 모르겠어서 맨 처음에는 샘플 7번이랑 대결한 로그를 많이 뽑아놓고
7번과 유사한 배팅을 하도록 해봤다.
배팅을 좀 살펴보니까 (A골랐을때 내총이득 - B골랐을때 내총이득)/2 이러면 벽보고 싸울순 있다는 것을 알았다.
그렇게 해서 돌려보니까 상대에 무관하게 그냥 주사위 억까를 당하면 지더라 그래서 폐기함...
문제가 뭘까 생각해봤는데 너무 이상세계만을 다루는 것 같았다.
100%로 둘 중 원하는 것을 선택할 수 있는 세계는 꿈만같지만... 존재하지 않기에
tX 시리즈를 만들었다. X%로 경매를 이기는 세계선에서의 최적을 계산한 dp를 해뒀음...
근데 샘플 AI 핑크빈들가지고는 내 전투력이 얼마인지 알기가 굉장히 어려웠다.
스위스에서는 1600한테도 지고 2600한테도 이기고 그냥 뭐가 쌘지 모르겠더라 그래서 늦게나마 전쟁터를 만들었다.
후반

최대한 in 100의 상황을 비슷하게 재현하고자 60개의 코드를 풀리그로 10~20판씩 하루에 10번은 돌린 것 같다.
그래서 그냥 올림픽 국대 뽑듯이 제일 잘한놈을 뽑기로 했다.
에이전트가 실수는 하지 않는지 그 친구에 대한 통계와 게임 로그를 따로 다 저장해둬야 했기 때문에 대회 막날에 내전 폴더 용량이 21GB를 넘는 슬픈 일이 발생했다.
그와 동시에 jinhan814이 양자화의 뭐 비트를 하나 올렸다고 했는데 사실 난 잘 모르겠다.
암튼 코끼리를 지갑이 아니라 카드지갑에 넣는것에 성공한거같다.
jinhan814, yeonee, jungh150, swoon 모두 내전마다 엎치락 뒤치락 하다가
마지막 날에 swoon의 핑크빈으로 하기로 정해졌다.
내 전략은 다음과 같았다.
벽보고 배팅하는 것은 당연히 옳지만, 럭키펀치 맞는 게 너무 싫었다.
따라서 게임을 진행하며 상대의 성향을 파악해서
벽보고 게임하는 친구인지 본인 패만 보고 게임하는 친구인지 분류한다.
본인 패만 보고 게임하는 친구면 딱 걔만 이길 정도로 플레이한다.
의도적으로 배팅승률 66%일 때의 테이블을 사용하여 벽보고 배팅하는 친구를 잡아먹으려 했다.
아마도 50% 테이블을 쓸거같기때문에? 암튼 이게 제일 괜찮았다.
최종

루비 상대로는 50%정도 나오는 것 같고 다이아 상대로는 66%? 정도 나오는 것 같았다. 물론 409팀은 한번도못이김
물론 스위스는 운빨이니까 못갈 확률이 높을거같긴 하다. 암튼 일주일동안 빡세게 했는데 재밌었다.
SCPC 준비하러 가자
재밌는 대회 열어주신 NYPC에 감사드리고 문제는 아래 링크에서 확인할 수 있다고 합니다.
'후기' 카테고리의 다른 글
| SCPC 2025 후기 (12) | 2025.09.03 |
|---|---|
| 코포 오렌지 달성 후기 (29) | 2025.07.23 |
| 제9회 천하제일 코딩대회 본선 Open Contest 후기 (3) | 2025.07.15 |
| UCPC 2025 예선 후기 (13) | 2025.07.14 |
| PS 후기 (0) | 2025.05.29 |