대회보다 온라인 저지가 먼저 없어졌습니다.
서론
Good Bye, BOJ! / Hello, BOJ! 대회는 2019년부터 매년 연말연시에 백준 온라인 저지에서 개최(하는 것을 목표로)하는 행사입니다.
운영진 풀이 7년째 거의 변함이 없는 점에는 장단점이 모두 있습니다. 가장 큰 단점은 시간이 지남에 따라 운영진들이 점점 PS와 멀어지고 있어 언제든지 대회가 열리지 않을 수 있다는 것입니다. 실제로 2025년 2월에 개최한 Hello, BOJ 2025! 와 2025년 12월에 개최한 Good Bye, BOJ 2025! 는 여러 사정으로 열리지 못할 뻔했습니다. 대회보다 온라인 저지가 먼저 없어지는 건 예상 못 했지만…
반면, 이제는 다들 고일 만큼 고여서 적당한 규모의 온라인 대회 정도는 운영진 모집부터 대회 개최까지 일주일 안에 해낼 수 있다는 장점 아닌 장점도 있습니다. 이 대회는 이러한 장점을 가장 잘 보여주는 케이스였습니다.
대회 준비 시작
BOJ가 머지않은 시일 내에 서비스를 종료할 것이라 짐작하고 있었고, 언젠가 그런 날이 온다면 대회 한 번 열고 보내줘야겠다고 오래전부터 생각하고 있었습니다.
4월 15일 15시 14분에 BOJ 서비스 종료 공지가 뜬 것을 보고, 바로 다음 날인 4월 16일부터 함께 대회를 개최할 사람을 모집하기 시작했습니다. 대회 전날까지 운영진이 계속해서 늘어나는 것을 보며 의아해하신 분들이 계시던데, 이는 부족한 시간 안에서 문제의 완성도를 최대한 끌어올리기 위해 계속해서 검수자를 모집한 결과였습니다.
4월 16일 14시 15분에 운영진 모집을 시작함과 동시에 저와 김준겸(ryute), 이종서(leejseo)는 대회 개최 공지를 쓰기 시작했습니다. 20시에 공지 초안이 나왔고, 약간의 수정을 거친 끝에 21시 43분에 아래와 같은 공지가 올라갔습니다. 개인적인 감상이지만 이 글은 5달이 지난 지금 다시 봐도 굉장히 잘 쓴 글 같습니다. 하하…
1 | |
공지까지 올렸으니 이제 돌이킬 수 없습니다. 대회 7일 전인 4월 19일에 문제를 확정하는 것을 목표로 문제 모집을 시작했습니다. 실제로는 4월 19일 3시에 문제 모집을 마감한 뒤, 4월 20일 18시 47분에 모든 문제를 확정 짓고 23일 10시에 세팅을 끝냈습니다.
문제 준비
아는 만큼 들리는 노래 2015 라는 영상이 2016년 초에 굉장히 유명했었습니다. 2015년 한 해 동안 인기가 많았던 곡들을 연결해 하나의 노래로 만든 영상입니다. 저도 10년 전에 연말연시의 기분을 느끼며 여러 번 들었던 기억이 있습니다.
이번 대회의 문제 컨셉은 “아는 만큼 보이는 문제” 였습니다. BOJ에서 알고리즘을 공부한 사람들이라면 다들 한 번씩은 풀어봤을 유명한 문제를 오마주해서 문제를 만들었습니다. 문제의 제목뿐만 아니라, 지문에 있는 수많은 하이퍼 링크도 모두 BOJ에 있는 문제와 연결되어 있었습니다. 이에 대한 설명은 뒤에서 더 자세하게 다룹니다.
처음에는 문제 컨셉을 정하지 않고 문제를 모집했지만, 제목이 Good Bye, %s! 형식인 문제 초안이 여러 개 올라오는 것을 보고 컨셉을 이렇게 정했습니다. 문제를 확정한 뒤에 저와 김준겸(ryute), 이상헌(evenharder), 그리고 각 문제의 출제자분들은 지문을 컨셉에 맞게 수정하는 데에 많은 시간을 들였습니다.
수많은 고인물들이 대회 참가를 포기하면서까지 검수에 지원해 주셔서, 가장 어려운 문제를 제외하면 문제 검수는 별문제 없이 잘 진행되었습니다. 가장 어려운 문제였던 “Good Bye, 두 트리!” 의 검수는 대회 전날까지 끝내지 못했습니다. 결국 96vCPU + 384GB 머신에서 $O(N^2)$ 코드를 이용해 모든 입출력 데이터가 정확함을 검증하는 방법을 사용했습니다. 사실 이 방법은 LGCPC 2025 본선 검수할 때도 사용한 유명한(?) 검수 방법입니다.
대회 준비의 전체 일정은 다음과 같습니다.
- 4/15 15:14 BOJ 서비스 종료 공지
- 4/16 14:15 운영진 모집 시작
- 4/16 21:43 대회 개최 공지
- 4/19 03:00 문제 모집 마감
- 4/20 18:47 대회 문제 확정
- 4/23 10:00 문제 세팅 마감
- 4/26 15:13 문제 검수 마감
- 4/26 18:00 대회 시작
- 4/26 22:00 대회 종료
- 4/26 22:10 방송 슬라이드 완성
- 4/26 22:15 방송 시작
대회 진행
정말 감사하게도 1500여 명에 달하는 분들이 대회에 참여해 주셨고, 이렇게 많은 사람이 몰렸음에도 불구하고 채점 서버에는 아무런 문제가 없었습니다. 스코어보드 로딩이 느린 건 runs.json을 사용하는 Spotboard 계열의 한계상 어쩔 수 없었습니다. 여기에서 별로 할 이야기는 없으니 문제별 리뷰만 간단하게 적겠습니다.
A. Good Bye, 별 찍기! - 출제/세팅: jhnah917

반복문과 재귀를 공부하는 사람이라면 모두가 풀어본 별 찍기 시리즈입니다. 아래와 같이 세로 길이가 $2N$, 가로 길이가 $4N+2$인 BOJ 로고를 출력하는 문제였습니다.
1 | |
B. Good Bye, 설탕 배달! - 출제: queued_q, 세팅: ryute

제목은 BOJ의 통곡의 벽 중 하나인 설탕 배달 문제에서 따왔습니다. 단계별로 풀어보기의 앞부분에 있으면서 문제 자체도 쉬워 보이지만, 그렇다고 아무 생각 없이 풀면 틀리는 문제라 수많은 초보자를 고생시킨 문제입니다. BOJ 서비스 종료 전에 질문 게시판이 먼저 막히는 바람에 게시판 사진을 문제에 넣지 못한 것이 아쉬웠습니다. 고등학생 때 아래와 같은 질의응답을 본 기억이 있습니다.
Q: 1부터 30까지 다 넣어봤는데 반례가 없어요
A: N = 22가 반례입니다.
C. Good Bye, 토마토! - 출제/세팅: 79brue

토마토는 2013년 KOI 지역본선 초등부와 고등부에 출제된 문제입니다. BFS 연습 문제로 잘 알려져 있으며, 고등부에 나온 2차원 버전은 BOJ에 있는 골드 5 문제 중 두 번째로 많이 풀린 문제입니다.
주제가 요리 대결이기도 하고, 출제자인 79brue가 2017년 KOI 대상을 받았기 때문에 처음에는 2017년 KOI 전국본선 고등부 3번인 요리 강좌를 문제 제목으로 사용하려고 했습니다. 하지만 (제 생각과는 다르게) 요리 강좌가 많이 유명한 문제는 아닌 것 같아서, 토마토로 요리하는 문제로 바꾸었습니다. 대신 요리 강좌는 문제 지문에서 언급했습니다. 이 밖에도 두 심사 위원과 관련된 대회(wookje - 천하제일 코딩대회)와 문제(evenharder)가 하나씩 하이퍼링크로 들어갔습니다.
D. Good Bye, 최소 스패닝 트리! - 출제/세팅: queued_q

최소 스패닝 트리와 관련된 문제라서 제목을 정하는 것은 쉬웠습니다. 풀이의 난이도도 원본 문제와 크게 차이나지 않습니다.
E. Good Bye, Scenery! - 출제: 79brue, 세팅: evenharder

A부터 D까지는 원본 문제의 난이도와 대회 문제의 난이도가 비슷했지만, E에서는 2017 ICPC World Finals의 보스급 문제로 나온 Scenery를 제목으로 사용했습니다. ICPC WF에 어려운 문제는 수도 없이 많은데 이 문제가 언제부터 어떻게 유명해졌는지는 잘 모르겠습니다. solved.ac 가 만들어지기 전부터 유명했던 것은 기억합니다. 2018 IOI 가을 통신교육 때문일 수도 있고, 아니면 제가 모르는 과거 BOJ 슬랙 시절에 밈 같은 존재였을지도 모르겠습니다.
아무튼 문제가 너무 유명한 덕분에 이 문제는 BOJ에 있는 루비 2 문제 중 가장 많이 풀린 문제가 되었습니다. BOJ에서 문제를 열심히 푼 사람들이라면 문제 지문에 있는 사진, 그리고 $N$명의 사진가가 래피드 시티에서 사진을 찍는 스토리를 보며 반가웠을 것입니다.
F. Good Bye, 습격자 초라기! - 출제/세팅: serin

습격자 초라기는 설탕 배달과는 조금 다른 의미로 BOJ의 뉴비 분쇄기로 유명한 문제입니다. 1000번 문제부터 차례대로 문제를 풀면 1006번에 있는 습격자 초라기에서 막힌다는 이야기가 있습니다. 하지만 개인적으로는 1006에서 막히면 그것만으로도 정말 똑똑한 사람이라고 생각합니다. 대부분 1003번 피보나치 함수 또는 1005번 ACM Craft 에서 막히지 않을까요?
사실 이 문제는 제목보다는 문제 지문이 중요합니다. 이 문제에서 언급된 문제는 다음과 같습니다.
- 대장장이 토르비욘 - BOJ 13361 최고인 대장장이 토르비욘 (2016 NCPC)
- 고정된 카메라로 매일 밤 자정에 하늘 사진을 찍고 있다가 - BOJ 13310 먼 별 (2016 KOI 전국본선)
- 1, 2, …, R-L+1마리 - BOJ 17353 하늘에서 떨어지는 1, 2, …, R-L+1개의 별 (제3회 천하제일 코딩대회 본선)
- 초라기 - BOJ 1006 습격자 초라기
- 지도 - BOJ 3392 화성 지도
- 수아는 사탕 - BOJ 2419 사수아탕 (2009 Baltic OI)
- 연구소 - BOJ 14502 연구소 (삼성 코딩테스트)
- 특공대 - BOJ 4008 특공대 (2010 APIO)
- 엔빵 - BOJ 21725 더치페이 (제3회 IDT Cup)
- 순간 이동 - BOJ 숨바꼭질 시리즈
- 이동하는 중 - BOJ 이동하기 시리즈
문제의 그림 또한 2016 KOI 전국본선 고등부 4번에 출제된 먼 별의 이미지에 초라기를 합성한 것입니다. 이미지는 GPT-Image-2를 이용해 만들었습니다. 참가자가 생성형 인공지능을 사용하는 것은 허용하지 않지만, 운영진은 자유롭게 사용하는 모순(?)적인 대회입니다.
G. Good Bye, 소가 길을 건너간 이유! - 출제/세팅: queued_q

USACO 2017 February Contest에 출제된 12개의 문제는 소가 길을 건너간 이유 %d 형식의 제목으로 번역되어 BOJ에 업로드되어 있습니다. 이 밖에도 다른 대회에서 비슷한 제목의 문제가 여러 번 출제되었습니다.
- 2020 UCPC 본선 - BOJ 19545 소가 길을 건너간 이유 2020
- 2020 Goricon - BOJ 20118 호반우가 길을 건너간 이유
- 2020 CPC - BOJ 20206 푸앙이가 길을 건너간 이유
이 문제도 F번과 마찬가지로 지문에 여러 문제가 언급되어 있습니다.
- 소들이 … 모습을 사진에 담았다 - BOJ 5914 Cow Photography (USACO 2011 December)
- 잉크 통을 엎지르는 - BOJ 16857 잉크를 엎질렀다 (leejseonal ddforces (ryuted for div.1))
H. Good Bye, 요세푸스 문제! - 출제/세팅: onjo0127

큐와 재귀 함수, 점화식을 공부하는 사람이라면 한 번씩은 풀어본 문제인 요세푸스 시리즈에서 따왔습니다. 문제 풀이가 정말 아름답습니다. 당시 최신 모델이었던 GPT 5.5가 풀지 못했다는 점을 생각하면, 여러 방면에서 정말 좋은 문제입니다.
I. Good Bye, 두 트리! - 출제: yclock($\tilde O(N^2)$ 버전) & leejseo($O(N \sqrt N)$ 버전), 세팅: leejseo

이 대회에서 가장 어려운 문제입니다.
백준 온라인 저지에는 제목이 “두 트리”인 문제가 4개 있습니다.
- BOJ 13341 두 트리
- BOJ 23052 두 트리 (2021 SNUPC)
- BOJ 24027 두 트리 (2021 나코더 송년)
- BOJ 28402 두 트리 (2023 UCPC 본선)
이중 SNUPC에 출제된 BOJ 23052 두 트리는 문제를 matroid intersection으로 모델링한 뒤, 그래프의 성질을 이용해 일반적인 $O(N^3)$ 알고리즘보다 빠른 $\tilde O(N^2)$ 시간에 계산하는 것을 의도한 문제입니다. matroid partition을 이용해서 풀 수도 있지만, 어떤 방법을 쓰더라도 어려운 문제인 건 변치 않습니다. Good Bye, 두 트리! 문제는 $N$의 상한을 3000에서 100000으로 늘린 문제입니다.
제 블로그에 BOJ 23052 풀이를 포함해 매트로이드 문제의 풀이가 몇 개 있어서 그런지, LLM을 이용한 부정행위자들이 제출한 코드에서 재미있는 점을 여럿 발견할 수 있었습니다.

J. Bood Bye, BOJ!
1 | |
제1회 키파컵의 Happy Birthday, kipa00!, 제1회 논산 코드 페스티벌의 편지 꼭 해다오 같은 문제에서 사용되었던 편지를 쓰는 컨셉의 문제입니다. 문제의 예제 출력에는 운영진들의 편지가 들어 있습니다. BOJ의 마지막 문제에 자신의 이름을 넣을 수 있는 운영진의 특권 아닌 특권입니다.
1 | |
실제로는 정상적인 편지만 예제로 들어갔지만, 문제를 준비하는 과정에서는 아래와 같은 괴상한(…) 편지도 많이 나왔습니다.
1 | |
아무말
대회는 별 사고 없이 잘 마무리되었습니다. 급박한 일정 속에서도 대회를 개최하기 위해 힘 써주신 분들, 그리고 지금까지 백준 온라인 저지를 운영해 주신 최백준님께 모두 감사드립니다.
| 핸들 | 소속 | 핸들 | 소속 | 핸들 | 소속 |
|---|---|---|---|---|---|
| 79brue | MIT | junseo | 한양대학교 | qwerasdfzxcl | 서울대학교 |
| blackking26 | 서울대학교 | kdh9949 | Furiosa AI | ryute | NEXON |
| cgiosy | NEXON | koosaga | MIT | serin | KAIST |
| cozyyg | 삼성전자 | kyo20111 | 삼성전자 | shiftpsh | NEXON |
| cs71107 | 서울대학교 | leejseo | KAIST | silverwolf | 서울대학교 |
| evenharder | Furiosa AI | leinad2 | 서울대학교 | songc | KAIST |
| ibm2006 | KAIST | lighton | 서울대학교 | stonejjun03 | 프레스토 리서치 코리아 |
| jhnah917 | Quora | onjo0127 | KAIST | wookje | |
| jhwest2 | 서울대학교 | queued_q | 삼성전자 | yclock | 서울대학교 |
저도 대충 서울대/KAIST 나온 것처럼 보이도록 잘 숨어봤는데 성공적이었는지는 모르겠습니다. 대회 운영하면서 똑똑한 친구들을 정말 많이 알게 되었습니다. 덕분에 이 대회도, 그리고 저도 여기까지 올 수 있었습니다.
2026년 1월 19일에 제 블로그에 올라간 이 글을 언급하며, Good Bye, BOJ! 대회 운영진은 BOJ 서비스 종료 소식을 미리 알고 있었던 것이 아니냐는 의문을 제기한 글을 보았습니다. 이제 와서 말하는 거지만, 저 글은 Good Bye, BOJ 2025! 후기를 쓰기 위해 파일을 생성했지만 까먹고 내용을 작성하지도 파일을 삭제하지 않은 채로 커밋해서 올라가게 된 포스트입니다. 히스토리 보존을 위해 삭제하진 않았습니다.
-
그전까지는 한 번도 콘서트에 안 다니다가, 작년 4월을 시작으로 약 1년 반 동안 7번의 콘서트/팬미팅에 갔습니다.
- 250427 DAESUNG 2025 ASIA TOUR: D’s WAVE IN SEOUL Day 2
- 260102 DAESUNG 2025 ASIA TOUR: D’s WAVE ENCORE - SEOUL Day 1
- 260104 DAESUNG 2025 ASIA TOUR: D’s WAVE ENCORE - SEOUL Day 3
- 260208 2026 G-DRAGON ‘FAM’ MEETING [FAM+ILY : FAMILY : FAM I LOVE YOU] Day 3
- 260821 BIGBANG 2026-2027 WORLD TOUR <XX : COSMOS> IN GOYANG Day 1
- 260822 BIGBANG 2026-2027 WORLD TOUR <XX : COSMOS> IN GOYANG Day 2
- 260823 BIGBANG 2026-2027 WORLD TOUR <XX : COSMOS> IN GOYANG Day 3
약 15년 동안 공부할 때 듣던 노래들을 현장에서 들어보는 것은 정말 좋은 경험이었습니다.
공연을 보면서, 공연하는 가수를 보면서, 그리고 공연을 보는 관객들을 보면서 여러 생각이 들었습니다. 예술은 다른 사람에게 추억과 감동을 주고, 과학과 공학은 세상을 더 편리하게 만들어 줍니다. 제가 전공한 CSE 또한 과학과 공학 그 사이 어딘가에 속하고, 마찬가지로 세상을 더 편리하게 만드는 데에 지난 수십 년 동안 많은 기여를 했습니다. 그러나 Problem Solving이라는 작은 분야는 다른 사람에게 어떤 가치를 줄 수 있을까요? 가만히 앉아서 문제를 푸는 것만으로 어떠한 가치를 창출하기는 어렵습니다. 또한, 온라인 저지에서 푸는 문제는 이미 풀린 문제이기 때문에 인류 지식의 경계를 확장하는 것에도 (직접적으로) 기여하지 않습니다.
가수들은 무대 위에서(또는 사람들 앞에서) 공연할 때 정말 행복해 보였습니다. 제가 무언가를 하면서 그 정도의 행복과 기쁨을 느꼈을 때가 언제였는지도 다시 한번 돌아봤습니다.
두 가지 질문을 한 번에 해결할 수 있는 답을 떠올리는 데에는 오랜 시간이 걸리지 않았습니다. BOJ는 서비스를 종료했지만, 저는 앞으로도 대회를 운영하며 저와 다른 사람들이 좋은 추억을 남길 수 있게 도움을 주려고 합니다. LLM의 발전 속도를 보면 알고리즘 대회가 언제까지 유지될 수 있을진 모르겠습니다.
-
8개의 시즌 동안 총 11개의 대회를 개최했고, 그중 4번의 대회는 오프라인(2023 삼성전자 서울대 공동 연구소, 2024-2025 LG사이언스파크)으로도 개최했습니다. 참 많이도 했네요… 학교에서 학생들을 가르치시는 50대 선생님, 과거에 정말 뛰어난 실력으로 대회를 휩쓸고 다니셨던 40대 직장인, 그리고 고등학생과 중학생까지, 다양한 연령대의 참가자가 한자리에 모여 문제를 푸는 모습을 지켜볼 수 있어서 행복했습니다.
| 전체 참가자 | 오프라인 참가자 | 운영진 | |
|---|---|---|---|
| Good Bye, BOJ 2019! | 133 | 0 | 14 |
| Good Bye, BOJ 2020! | 515 | 0 | 22 |
| Good Bye, BOJ 2021! | 773 | 0 | 21 |
| Hello, BOJ 2022! | 705 | 0 | 20 |
| Good Bye, BOJ 2022! | 599 | 0 | 25 |
| Hello, BOJ 2023! | 272 | 92 | 26 |
| Good Bye, BOJ 2023! | 284 | 0 | 18 |
| Hello, BOJ 2024! | 272 | 84 | 18 |
| Hello, BOJ 2025! | 247 | 68 | 15 |
| Good Bye, BOJ 2025! | 200 | 72 | 15 |
| Good Bye, BOJ! | 1501 | 0 | 28 |
각 대회의 난이도 분포는 아래와 같습니다. 노란색 배경은 오프라인 참가자를 선발하기 위한 예선 성격의 대회, 하늘색 배경은 오프라인 참가자를 대상으로 한 대회라서 난이도 분포가 고르지 않을 수 있습니다. 하지만 그 점을 고려하더라도 최단 대회의 난이도 분포는 이상적이지 않았던 것 같은데, 마지막 대회는 예쁘게 잘 나와서 다행입니다.

BOJ가 돌아오면 Hello, BOJ! 를 개최해야 할까요? 그때 가서 생각해 보는 걸로 하겠습니다. 문제와 사람과 시간이 있다면 불가능하진 않아 보입니다.
그동안 수고 많으셨습니다.