사실 이런 글을 쓸 생각이 별로 없었는데, 친구가 써서 나도 쓰게 되었다.
01.06. Hello 2024
고등학교를 졸업하기 직전, 최고의 퍼포먼스를 갱신시키며 International Grandmaster라는 타이틀을 얻었다. 그 대회가 있기 전까지는, 한 해를 꽤나 잘 시작했다고 생각했었다.
고등학교에 입학하기 직전 레이팅이 1784이었고, 저 라운드 직후 레이팅이 2610이었으니, 고등학교 3년 동안 826점이나 올렸다.
02.20. 카이스트 입학
카이스트에 입학했다. 당시의 사진을 찾아보려고 했는데 못 찾았다. 입학식날은 비가 왔다.
3월~7월
딱히 이렇다 할 일정이 없다. PS 동아리인 RUN에 가입해 ps하고 공부하고 과제하는 것만 반복했다. 다이아스트릭도 이때쯤 시작했다.
1학기때 들은 과목을 소개하자면, 다음과 같다.
- 미적분학 I : 그냥 평범한 대학 미적분학이다. 내가 적분 계산을 정말 못 하고, 매 사칙연산마다 자리수에 비례하는 확률로 실수를 하는데, 그래서 시험도 그렇고 어려웠다. 그래도 결과적으로 잘 공부해서 A+을 받을 수 있었다.
- 알고리즘 개론 : ps를 했으면 A- 정도를 받는 것이 보장된다. 그러나 나는 공부를 대충해서 A+을 못 받고 A0를 받았다.
- 응용미분방정식 : pnr을 쓰고 공부를 대충 해서 pass만 받았다. 대충 미분방정식을 푸는 테크닉같은걸 알려줬었는데, 고등학교때 했던 것과 비슷해서 내용은 쉬웠는데, 계산이 쉽지 않았다. 애초에 나는 다항함수, 지수함수, 로그함수, sinx cosx를 제외한 함수를 적분할 수 없다...
- 일반물리학 I : 역시 pnr을 쓰고 대충 공부했다. 근데 A-나 뜬 것을 보면 그냥 열심히 해서 레터그레이드 받을 걸 그랬다. 밤 새고 시험치다 졸려서 그냥 나와버렸는데, 그래도 이런 성적을 줄 줄은 몰랐다.
- 기타 교양과목 두개 : 암기가 어려워서 망했다.
ps관련 내용은 내가 쓴 예전 글들을 참조하면 될 것 같다.
08.06 현대모비스 대회 본선
예선은 잘 기억이 안 난다. 무난하게 쳤었던거같다.
본선은 이슈가 좀 많았다. 시작부터 신분증을 안 가져가서 문제가 생겼었고(결과적으로 잘 처리됐다), 대회 시작부터 끝까지 계속 말렸다. 그러나 운이 좋게도 정확히 20등을 하여 아이패드를 받을 수 있었다.
08.27. Artificial Ascent 클리어
https://www.youtube.com/watch?v=l11A9KrhOyo
첫 프로그래스인 58~100을 올린지 약 9개월이 지난 날, 무려 71242 번의 시도 끝에 Artificial Ascent를 깼다. 연습 중간에 루나메를 좀 파느라 안 했었던 시간을 고려하면 이 맵에 투자한 순수 시간은 3개월 정도인 것 같다.
이 글에 올라와 있는 업적 중 가장 어렵고 힘들었던 것을 뽑는다면, 고민의 여지 없이 Artificial Ascent 클리어를 뽑을 것이다. 이 맵을 파기 전 hardest가 엔트리 익데 중 하나인 HyperSonic이었는데, 둘의 난이도 차이가 매우 커서 타이밍을 익히는데 아주 오래 걸렸다. 그리고 맵이 너무 길어서 후반에만 가면 긴장돼서 죽는 경우가 많았는데, 아마 이게 클리어를 지연시킨 데에 가장 큰 원인일 것 같다. 2월 초에 61%먹었을 때 열심히 연습했으면 깰 수도 있었을 것 같은데 설날+독감+개강 3연타로 못 깼다.
아마 다음 익데는 Cognition이 될 것이다. 아마 지금 페이스를 봤을 때(44%, 36~100%) 빠르면 봄학기 개강 전까지 깨고, 늦으면 봄학기 종강 이후 방학 중에 깨지 않을까?
https://www.youtube.com/watch?v=JpFGRRL4PPE
08.31. SCPC 2024
첫 SCPC를 쳤다. 운이 좋게도 2등을 했다. 풀이와 후기를 블로그에 정리하고 있는데, 할 일이 없어지고 이거보다 재밌는 것들이 다 사라지면 마저 정리할 예정이다. 그러므로 자세한 이야기는 생략한다.
2등상을 받았다고 인터뷰를 시켰는데, 망쳐버렸다. 인터뷰가 귀찮아서 준비를 하나도 안 해 갔더니 망했다.
11.08. Chess.com Rapid 1200
체닷을 시작하고, 래피드 1200을 찍었다. 사실 리체스에서 판수박치기 한게 좀 있어서 금방 찍었다.
이후로도 가끔씩 돌렸었는데, 실력이 많이 늘지는 않았다. (12월 말에 좀 떨궜다)
올해 게임 중 잘 한 것을 소개하자면 다음과 같다.
https://www.chess.com/analysis/game/live/128267935827?tab=review
Chess Analysis Board and PGN Editor
Analyze games with the strongest chess engine in the world: Stockfish. Improve your game with the help of personalized insights from Game Review.
www.chess.com
퀸으로 킹을 잘 위협하다가 이런 상황이 됐다. 사실 어느 정도 의도한 것도 있다.
여기서 Qe8+을 두면 킹이 피할 곳은 f5 f6밖에 없고, 이러면 Qe8+ 스큐어로 룩을 딸 수 있다.
상대도 그걸 봤는지 Qe8+를 하자 Rf7로 대응했는데, 난 여기서 Nf4+!!를 했다.
f4 나이트는 g3으로 보호받고 있으므로, 기물 손해 없이 나이트를 잡으려면 exf4가 유일한데, e폰은 퀸에 의해 핀되어 있으므로 불가능하다. 따라서 킹이 피해야 하는데, 킹이 어디로 피하더라도 체크메이트를 막기가 어려울 것(혹은 기물 손해를 보게 될 것)이라는 것이 기본적인 아이디어였다. 시간이 없어서 수읽기는 못 하고 뒀는데, 결과적으로 맞는 수였다.
상대는 킹을 f6로 피하는 선택을 했으나, 이것은 두 수 체크메이트를 당하는 실수였다. 최선의 수가 유일한데, 답은 이 글을 보는 독자에게 맡기겠다. 나는 찾아서 이겼다.
9월~12월
1학기와 마찬가지로 공부하느라 다른 큰 일정은 없었다.
들은 과목은 다음과 같다.
- 프로그래밍 언어 : PPAP(pen pineapple apple pen)라고 불리는 과목이다. 정말 재밌게 공부했는데, 너무 어려웠다. 중간을 망쳤는데 기말에 어찌어찌 복구해서 A0를 받았다.
- 이산구조 : PS러라면 B+ 이하의 학점을 받는게 더 어려울 것 같다. 나는 무려 수업에 한 번도 출석하지 않았는데도, A+을 받을 수 있었다.
- 그래프 이론 개론 : 정말 어려운 과목이었다. 매주 5~6문제로 이루어진 과제가 나가는데, 과제의 대부분은 논문이 있다. 또한 중간고사가 없고 기말고사만 있는데, 기말고사는 무려 7시간이고, 렉쳐노트 전부와 50페이지 이하의 양면 치팅시트를 가져 갈 수 있다. 난 pnr을 써서 과제를 대충 했는데, 친구는 매주 20시간을 투자해 과제를 했다. 과목은 정말 어려웠지만, 내가 카이스트에서 들은 과목 중 가장 재미있었다고 할 수 있다.(친구는 이것이 pnr 때문이라고 주장한다) 특히 재미있었던 문제가 있는데, 아래에 소개한다.
- Triangle Free인 $G$에 대하여, $G$의 complement가 가질 수 있는 $triangle$의 최대 개수를 구하라.
- 논문을 찾았는데, 그 논문이 틀려서 내가 직접 다시 풀어야 했다. $G$의 order가 크면 $G$의 complement가 크기가 최대 1 차이나는 clique의 disjoint union인 경우가 최대임을 보일 수 있고, $n$이 작을 경우에도 어떻게 잘 하면 보일 수 있다. 아마 이 내용은 다른 포스트에 서술할 예정이다.
- Connected graph $G$가 있고, $c(v)$를 $v$가 포함되어 있는 cycle의 크기의 최솟값이라 하자. (없으면 inf이다.) 또한 $c(G)$를 모든 $v$에 대해 $c(v)$의 maximum이라 하자. $c(G)+||G|| \lge n+n^{1/2}$임을 증명하라. (sqrt n에 곱해지는 상수가 붙었었던거같은데 기억이 잘 안 난다)
- Triangle Free인 $G$에 대하여, $G$의 complement가 가질 수 있는 $triangle$의 최대 개수를 구하라.
- 선형대수학 개론 : 고등학교 때 공부하여 이미 아는 내용인데, 시험에 계산을 요구하는 내용도 많고 공부하기 귀찮아서 pnr을 썼다. 사실 pnr을 쓸 과목이 없긴 했다.
- 데이타구조 : 역시 이미 아는 내용인데, pnr을 썼다. 여담으로 과목 이름에 오타는 없다.
- 문제해결기법 : 내가 조교로 참여한 과목이다. 나는 문제들을 polygon에 세팅하는 역할을 했고, 문제 풀이도 한번 정도 했었던거같다.
- 테크포임팩트 : 개발 과목인데, 문제는 내가 개발과 인연이 없다는 점이다. 근데 의외로 생각보다 재밌었다.
뭔가 많이 들은 것 같지만 실제로 한건 거의 없다.
~11.23. ICPC
문정후(mjhmjh1104), 김기범(ibm2006)과 함께 BIGSHOT이라는 팀명으로 참여했다.
예선과 본선 모두 못 한 점은 없는 것 같다. 그러나, 억까로 인해 등수가 낮아지게 되었다.
당한 억까는 다음과 같다.
- 예선이 끝나기 30분 전, C의 올바른 풀이를 제출했었는데, 틀렸었다. 기범이는 I가 이론상 풀리나, 남은 시간 동안 코딩할 수 없다는 것을 발견하고 내 디버깅을 도와주웠고, 정후가 갑자기 K를 맞은 이후 내 디버깅을 도와주었다. 결국 끝나기 직전까지 세 명이서 한 코드를 붙잡고 디버깅하고 있었던 것이다. 그러나, 결국 디버깅을 실패했다. 실패한 이유는, 다들 아시다시피 내가 제출했었던 코드가 모든 valid한 입력에 대해 올바른 출력을 내놓았기 때문이다...
- 본선의 경우, 문제를 적당히 배분해 읽고 있다가, 내가 갑자기 G번을 보고 이거 eertree로 풀리는거 아님? 을 시전했다. 그러나 eertree는 팀노트에 없었고, 팀원들도 그렇게 단순하게 풀리지는 않을 것이라 주장하여 다른 방향으로 생각했다. 다른 문제를 풀고 다시 G로 왔는데, 더 이상 할 게 없어서 세 명이서 G만 생각하고 있었다. 그러나 결국 풀이를 찾는데 실패했다. 실패한 이유는, 60분이라는 시간은 eertree를 이용한 Factorizations into Palindromes을 떠올리기에 너무 짧은 시간이었기 때문이다. 내가 마지막에 마나허 코드를 이용해서 뚫으려고 했는데, 실패했다.
- 내가 아는 것이 맞다면 문제를 푼 모든 팀들은 뚫었거나, 팀노트를 사용했기 때문에 정해를 모른다고 알고 있다.
아무튼 서울대가 우승해서 세미파이널에 나갈 수 있으니 좋은 게 아닐까?
11.26. Pogostuck Map 2 클리어
무려 46시간 46분이라는 노력 끝에, Pogostuck: Rage With Your Friends의 Map 2를 클리어하였다. Map1에 비해 정말 어려웠다. 구간별로 간략하게 설명하자면,
- Ants-Coconuts(0m~150m): 시작파트라 그런지 쉽다. map1의 난이도와 크게 다르지 않다.
- Slopes-Wind(150m~300m): 초반에 여기서 오래 갇혀 있었다. 거의 수직인 벽에 붙어 수직으로 부스트를 사용해야 되는 경우가 많은데, 이게 많이 어렵다. 그리고 200m쯤에 있는 모아이 두개 사이로 지나가는 점프는 잘 지나가지는 각도가 있는데, 이걸 찾기가 어려웠다.
- Bees(300m~400m): 스페이스바를 적절하게 떼야 되는 낮점을 요구하는 파트가 처음으로 등장한다. 난 자석축 키패드가 있어서 이거로 바꾸니까 쉽게 되었다. 위쪽에 움직이는 벌들이 있는 파트는 어려울 줄 알았는데, 생각보다 쉽다.
- Vines(400m~500m): 벽차기로 올라가는 파트는 적응되면 쉽고, 그 다음이 신뢰의도약이 좀 있어서 감을 잡기 전엔 어려웠다. 심지어 여기서 떨어지면 운이 나쁘면 200m지점으로 되돌아간다.
- Pillars(500m~650m): 갑자기 난이도가 쉬워진다. 심지어 600m 부근엔 긴 수평 기둥이 있어서 이 위에서 떨어지면 600m 아래로 내려가기는 쉽지 않다. 물론 이 위의 대부분의 파트에서 한 번 실수하면 여기로 떨어트린다. 그런데 이 바닥이 오래 밟으면 아래로 내려가는 기믹이 있어서, 높은 곳에서 떨어지면 떨어질 때 머리로 떨어져야 되는데, 이 점이 위에서 떨어질 때 복구하기 힘들게 만든다. 어디로 떨어질 지 모르는 상태에서 똑바로 떨어지면 기둥이 아닌 돌을 밟았을 때 복구할 가능성이 생기지만, 기둥을 밟으면 한참 아래로 떨어진다. 집중을 놓쳤다가 200m까지 바로 떨어진 적도 있다. 반대로 머리로 떨어지면, 600m까지는 확정적으로 떨어지나 더 아래로는 안 떨어진다.
- Duck-Plums(650m ~ 800m): 처음엔 단두대가 있는데, 단두대는 쉽다. 깰때쯤엔 단두대 성공률이 거의 100%였다. 단두대 위쪽의 경우, 정말 빡빡한 점프가 있는데, 처음엔 방법을 몰라서 뇌절했는데 깰 때쯤에는 잘 됐다. 오리와 꽃이 있는 파트도 적응이 된다면 쉽다.(오리 턱에서 머리로 올라가는 점프가 좀 어렵긴 하다) 문제는 적응되지 않았을 때인데, 점프에서 실수하면 단두대를 다시 넘어가야 한다는 위험을 감수해야된다.
- Snake(800m~875m): 처음 보면 빡세보이는데, 첫 점프를 제외한 모든 점프는 정말 쉬웠다. 아마 앞 구간을 연습해서 그런거같긴 하다.
- Blocks(875m~1000m): 파트 자체만 놓고 보면 난이도는 그리 어렵지는 않으나, 문제는 한번 밟은 곳은 부서져 단 하나의 실수도 허용하지 않는다. 또한, 밟은 블럭이 아니더라도 블럭들은 아래서부터 천천히 부서지므로, 느리게 가서도 안 된다. 여기는 그냥 점프 하나하나를 외운다는 생각으로 가니까 잘 됐다.
12.28. 마작컵
오프라인 마작컵에 대사희쓰안커천화 라는 팀명으로 참가했다. 팀의 구성은 ICPC 팀인 BIGSHOT 팀과 동일하다. 운이 안 좋은 두 사람을 제외한 정후가 천화를 맡았고, 나는 쓰안커를 해 본 적이 없기에(사실 해 본 사람이 더 적을 것 같긴 하지만) 내가 대사희를 맡았고, 기범이가 쓰안커를 맡았다.
리치 마작(작혼 룰)에서 가능한 최고 점수는 6배 역만(자일색+쓰안커단기+대사희+(천화, 지화, 쓰깡쯔 중 하나))이지만, 아쉽게도 팀명에 8글자 제한이 있어 자일색쓰깡쯔쓰안커단기대사희 는 팀명이 되지 못 했다. 8글자 제한이 있을 경우, 4배 역만이 최대 점수라는 것을 증명할 수 있다.
대회 전, 문제가 13문제였고, 1z라는 번호를 가진 문제가 있다는 것을 보고 나는 바로 13문제가 요구패인 1, 9만, 1, 9삭, 1, 9통, 동남서북백발중에 해당된다는 점을 알아차렸다. 실제로 맞았다.
초반에 내가 뻘짓을 좀 많이 했는데, 팀원이 잘 해 줘서 우승할 수 있게 되었다. 내가 9s를 풀었는데, 이건 운이 좀 좋았던 것 같다.
12.28. 2700 plmadan
1월 초에 그랬던 것 처럼, 나는 또 한번의 최고 퍼포먼스를 갱신시키며 최고 레이팅을 달성했다. CF 2700이 올해의 목표 중 하나였는데, 결과적으로 하나를 성공한 셈이 되었다. 또한, 이 덕분에 수미상관의 구조에 맞게 글을 끝낼 수 있게 되었다.