제29회 International Obfuscated C Code Contest(IOCCC) 2025 수상작
1 hour ago
1
- IOCCC29 수상작 페이지는 각 엔트리의 index.html, 수상 소스 코드, 저자 설명, 압축 tarball을 통해 컴파일·실행 정보와 작동 방식 파악 자료를 제공
- 제출량과 제출 품질이 역사적 최고치에 가까운 수준이었고, 2020~2024년 공백 이후 두 번째 연속 대회인 IOCCC29도 전년과 비슷한 제출 수와 높은 품질 유지
- IOCCC28 종료 시점부터 대회 마감, 심사, 수상작 선정, 웹사이트 업데이트, Our Favorite Universe 라이브 쇼 제작 절차를 문서화했고, 이 과정이 IOCCC 운영 개선으로 연결
- 올해 수상작에는 심사위원 코멘트 아래 재미있는 도전 과제가 추가됐고, 열린 과제나 더 나은 해법은 GitHub pull request로 기여 가능
- IOCCC30은 2026년 말 개막과 2027년 1분기 말 종료 계획이며, 비수상 제출작은 개선 후 재도전하거나 공개 가능
시작점
- 2025년 수상 IOCCC 엔트리 링크는 페이지 아래의 수상작 목록에서 확인 가능
- 각 수상 엔트리의 index.html은 수상 프로그램을 컴파일하고 실행하는 데 필요한 대부분의 정보 제공
- 수상 소스 코드를 읽으며 작동 방식을 파악하고, 더 자세한 내용은 저자 설명에서 확인 가능
- 올해 대회의 모든 수상작은 압축 tarball 형태로 다운로드 가능
이번 콘테스트에 대한 일반 비고
- IOCCC29의 제출량과 제출 품질은 역사적 최고치에 가까운 수준
- IOCCC28은 4년 공백으로 참가자들이 제출작을 다듬을 시간이 있었고, 그 결과 기록적 제출 수와 평소보다 높은 제출 품질을 끌어냈다는 추측의 대상
- IOCCC29는 2020~2024년 공백 이후 두 번째 연속 대회였지만, 제출 수는 전년 대회와 비슷했고 전체 제출 품질도 높은 수준 유지
- IOCCC28 종료 시점부터 신규 제출 마감, 심사 절차, 수상작 선정, 웹사이트 업데이트, Our Favorite Universe 라이브 쇼 제작 절차를 세심하게 문서화
- 문서화에는 추가 시간과 노력이 필요했지만, 그 결과 IOCCC 운영 방식 전반의 개선 달성
- IOCCC29 수상작 발표가 Our Favorite Universe YouTube 채널에서 이뤄진 며칠 뒤, 메인 쇼 녹화본을 개별 세그먼트로 분할 예정
- 각 수상 엔트리의 index.html 상단 근처에는 새 Award presentation 섹션과 YouTube 세그먼트 링크 추가 예정
-
재미있는 도전 과제 정보
- 올해 수상작에는 “Judges’ remarks” 섹션 아래 재미있는 도전 과제 추가
- 특정 수상작의 기능을 파악한 뒤 해당 도전 과제 시도 권장
- 일부 과제는 다른 과제보다 쉬우며, 어떤 경우에는 prog.c 또는 관련 파일의 대체 버전 제작 요구
- 어떤 과제는 특정 항목에 대한 설명 작성 요구
- 특정 수상작의 “A fun challenge” 섹션에서 도전 과제가 still open 상태라면 GitHub pull request 제출로 기여 가능
- 도전 과제가 닫혀 있더라도 더 나은 해법이 있다고 판단하면 GitHub pull request 제출 가능
- IOCCC Judges가 더 나은 해법이라고 동의하면 검토 대상
- 수상작의 재미있는 도전 과제에 더 나은 개선안이 있다면 IOCCC Judges 검토를 위한 GitHub pull request 제출 가능
-
이번 콘테스트의 규칙과 가이드라인
- 이번 대회에 적용된 최종 규칙은 2025 rules 버전 29.15 2025-12-02
- 이번 대회에 적용된 최종 가이드라인은 2025 guidelines 버전 29.08 2025-12-02
- IOCCC29의 규칙과 가이드라인은 이전 대회 대비 큰 폭의 개편
- 여러 자원봉사자가 IOCCC Judges에 유용한 편집, 문장 개정, 통합, 전반적 구성 개선을 제공
-
다음 콘테스트를 향해
- IOCCC30은 2026년 말 무렵 개막 계획
- IOCCC30은 비슷한 기간 동안 진행되며 2027년 1분기 말 무렵 종료 계획
- IOCCC30 개막에 필요한 작업을 수행하면서 IOCCC29 마감 때와 마찬가지로 내부 절차 문서화 계획
- IOCCC29 수상작 게시 후 약 2~3주가 지나고 2025 디렉터리 트리에 대한 초기 pull requests 일부를 처리한 뒤 IOCCC Judges는 IOCCC vacation 계획
- IOCCC28 수상작 공개 후에도 IOCCC vacation 계획이 있었지만, mkiocccentry repo의 버그 수정과 개선 처리에 많은 시간이 들어 저장소 안정화 시점에는 IOCCC29 개막 시기 도달
- 이번에는 post-IOCCC29 IOCCC vacation 종료 후 mkiocccentry repo PRs 작업 계획
일부 수상작에 대한 비고
- 심사 라운드 최종 세트의 최종 라운드에 오른 제출작에 대해 잠재적 글을 작성하는 과정에서 일부 제출작은 최종 라운드의 마지막 단계에서 제외
- 남은 여러 엔트리에 대해 추가적인 감탄과 평가 상승
- 수상작 저자들은 기존 수상 저자 지역에서도 나왔고, IOCCC29에는 새 지역인 Taiwan 출신 jingp49 참여
- 세 명의 저자가 각각 세 개 엔트리로 수상하며 Hat trick)의 Hat-tricks 구성
- 주목할 만한 IOCCC29 수상작 일부는 다음과 같은 구성
- 위 목록은 IOCCC29의 많은 뛰어난 수상작 중 일부에 해당
-
수상하지 못한 일부 제출작에 대한 비고
- 최종 선정에 아주 근접했지만 수상하지 못한 훌륭한 제출작이 다수 존재
- 각 저자가 엔트리에 들인 노력은 높이 평가되지만, 노력만을 기준으로 시상할 수는 없음
- IOCCC29에 제출했지만 수상하지 못한 코드는 다듬은 뒤 IOCCC30에 다시 제출할 수 있는 대상
- IOCCC29의 수상작 중 하나 이상은 이전 대회에서 수상하지 못한 코드를 개선한 버전
-
올해 수상하지 못한 참가자를 위한 격려
- 올해 IOCCC 제출작에는 많은 노력이 들어갔지만, 모든 제출작에 상을 줄 수는 없음
- 모든 제출작에 상을 주면 최고라고 판단되고 수상 자격이 있는 제출작의 의미를 빼앗는 결과
- 최종 라운드 제출작이 수상작이 될 만큼 충분히 좋더라도, 비슷하지만 조금 더 나은 제출작에 밀릴 수 있음
- 이런 상황이라고 판단되는 제출작은 다음 IOCCC에 개선 버전 제출 권장
- 여러 차례 수정 제출을 거친 뒤 수상작 수준에 오른 제출작도 존재
- 다음 IOCCC에는 완전히 다른 유형의 제출작 시도도 가능
- 다음 IOCCC에 비수상 엔트리를 개선해 재제출할 계획이 없다면 공개 가능
수상작 컴파일 및 실행
- 일부 C 컴파일러는 충분히 좋은 결과를 내지 못할 수 있음
- 사용 중인 컴파일러가 잘 작동하지 않으면 최신 버전의 clang 또는 gcc로 컴파일 시도 가능
- 수상작 컴파일 또는 실행 중 문제가 생기면 다음 FAQ 참조 가능
- 수정 제출에 대한 추가 정보는 다음 FAQ 참조 가능
2025년 제29회 IOCCC 수상작
-
Homepage
-
개발자
- 제29회 International Obfuscated C Code Contest(IOCCC) 2025 수상작