본문 바로가기
주저리

짧은 구데기컵 참여 후기

by 유세지 2023. 5. 7.

 

 

지난 4월 30일부터 5월 1일까지 진행된 구데기컵에 참여한 후기입니다.

 

코딩 테스트를 준비하면서 알고리즘 문제들을 풀어보신 분들에게 백준 온라인 저지(BOJ)는 한 번쯤 들어봤거나, 꽤 친숙한 이름입니다. 저도 많이 이용하고 있고, 이전에 관련해서 주저리주저리 포스팅도 많이 했었습니다.

 

- BOJ를 통해 개최된 대회 "UCPC" 참가 후기 : 2018 , 2021

 

단순히 문제를 푸는것 이외에도 랭킹 시스템이나, 다른 사이트와의 연동을 통해 알고리즘 문제 풀이에 동기부여를 해주는 부가적인 기능이 많아서 꽤 재밌게 하고 있는 요즘입니다.

 

- codeforce와 연동하여 아이디 색 바꾸기, solved.ac 골드 티어 달성 기념

 

개인적으로, 또는 학교나 회사 등의 단체로 많은 대회들이 열리고 있지만 오늘 쓸 후기는 그 중에서도 조금 특별한 대회의 후기입니다.

 

 

 

구데기컵

 

구데기컵 마스코트 '구데기'

 

 

이름과 마스코트부터 범상치 않습니다. 파리목 곤충의 유충을 뜻하는 그 구더기가 맞습니다. 이 구데기컵의 가장 큰 특징이라면, 출제 공지부터 문제까지 전부 구데기스럽다는 점입니다.

 

 

보통의 알고리즘 문제라고 한다면 지문을 통해 알고리즘의 풀이 방법을 유추하고, 이를 문제에 주어진 조건(시간, 메모리 제한 등)에 따라 효율적으로 코드를 작성하여 제출하면 정답을 받을 수 있는 형식입니다. 이 과정에서 특별한 공식이나 수학적/컴퓨터공학적 배경 지식, 또는 구현 스킬 등이 요구되며 쉬운 문제부터 점점 어려워지는 난이도의 문제를 풀며 나름의 재미를 찾을 수 있습니다. 따라서 대부분의 문제들은 실생활에 응용할 수 있거나, 합리적인 추론을 전제로 만들어지기 마련입니다.

 

그러나, 이러한 문제 공식들을 비웃듯 구데기컵의 문제들은 한결같이 어딘가 나사가 빠진 모습입니다. 설명으로는 와닿지 않으니, 출제되었던 문제를 직접 한 번 보겠습니다.

 

 

 

제 1회 구데기컵 🌍번 문제 : Africa

(문제 번호부터 이미 숫자가 아닙니다.)

 

문제

많은 부분을 생략한 문제 지문

 

 

어마어마한 지문의 양인데, 이마저도 모든 내용을 캡쳐하지 않은(못한) 분량입니다. 실제로는 위 양의 2~3배 정도이며 문제 전문은 이곳에서 확인할 수 있습니다.

 

이렇게 지문을 주고, 입력으로는 아프리카의 나라 이름들이 나오는데 해당 나라들을 순서대로 방문했을때 발생하는 비자 비용을 구하는 코드를 작성하면 되는 문제입니다.

 

푸는 방법이 어려운 것은 아니지만, 너무 많은 양의 지문으로 인해 말 그대로 푸는데 힘이 드는 문제입니다. 다음에 소개드릴 문제는 아예 정해가 딱히 없습니다.

 

 

제 1회 구데기컵 🎮번 문제 :

SUPER SUPER BINARY SEARCH DELUXE 2.5: THE LEGEND OF THE GOLDEN MAZASSUMNIDA, EPISODE 2: THE MAZWAETL UNIVERSE, PART 2: THE PARALLEL UNIVERSE AND THE LOST MAZASSUMNIDA: GAME OF THE YEAR EDITION

(진짜 문제 이름이 저겁니다)

 

출제자가 고른 자연수를 출력해야 합니다...

 

 

문제 이름을 보면 슈퍼슈퍼 이진탐색 2.5 ... 까지만 보고 이진 탐색을 이용하는 문제인가? 라고 생각할 수 있는데 일단 맞긴 합니다. 다만 풀이자들이 직접 피벗이 되어야 합니다. 심지어 정답은 누군가 맞출때마다 매번 바뀝니다.

 

한 번 도전해보고 싶으신 분들은 이곳에서 도전해보세요.

 

 

이런식으로 구데기컵은 단순히 알고리즘 실력 뿐만 아니라, 독해력, 운, 끈기, 시간과 노력 등을 모두 갖추어야 풀 수 있는 재미 위주의 문제들로 구성된 대회입니다. 그리고 이번이 벌써 6번째 열리는 구데기컵입니다.

 

 

대회 이름도 평범함을 거부합니다.

 

 

빈칸처럼 보이실 수 있는데, 빈칸 맞습니다. 이번에 열린 구데기컵의 제목은 공백 하나없는 ""(빈 문자열)입니다. 아무것도 안쓰면 알아보기 어려우니 이 글에선 ""로 표시하겠습니다.

 

 

여섯번째 구데기컵 : ""

저는 이번 구데기컵에 참가하여 두 문제를 풀었습니다. 하나는 부분 점수만 받았고, 하나는 정답을 맞추었네요.

 

원래라면 세 문제를 풀 수 있었는데... 마지막 문제를 푸는 과정에서 중간에 오류가 있었는지 풀이 방법을 찾지 못하고 대회가 끝난 나중에야 에디토리얼을 보고 정답을 받게 되었습니다.

 

어찌되었건, 부분적으로라도 풀었던 세 문제를 하나씩 보겠습니다.

 

 

"" 27907번 문제 : The primes contain arbitrarily long arithmetic progressions

그린-타오 정리에 관한 글입니다.

 

실제로 그린-타오 정리를 이용하여 소수의 등차수열을 구하는 것은 현실적으로 불가능합니다. 에디토리얼에 따르면 전 세계의 컴퓨터가 소수로만 이루어진 등차수열을 구하려는 시도를 했음에도 불구하고 현재까지는 요소가 27인 소수 등차수열만이 발견되었습니다.

 

이 문제는 실제로 소수 등차수열을 구하는게 아닌, 공차가 0인 소수 수열을 출력하는 문제입니다. 따라서 파이썬으로 다음 코드를 제출하면 정답을 받을 수 있습니다.

 

print(*([2 for _ in range(int(input()))]))

 

저는 그걸 몰라서 총점 27907점 중 부분 점수로 7점만 받았습니다.

 

👉 문제 풀어보기

 

 

"" 27907번 문제 : 인생

 

의외로 정상적인 제목의 문제인줄 알았으나, 거기서부터 문제가 시작되고 있었습니다. 자신의 아이디에 포함된 문자를 사용하지 않고, 아이디를 출력하는 코드를 작성해야 합니다.

 

일반적인 언어들에서 보면,

C 언어 사용자의 경우 아이디에 m, a, i, n, (, ), {, }, p, r, i, n, t, ; 등이 들어가면 풀 수 없습니다.

C++ 언어 사용자의 경우 아이디에 m, a, i, n, (, ), {, }, c, o, u, t, <, ; 등이 들어가면 풀 수 없습니다.

Python 언어 사용자의 경우 아이디에 p, r, i, n, t, (, ) 등이 들어가면 풀 수 없습니다.

node.js 언어 사용자의 경우 아이디에 c, o, n, s, l, e, (, ) 등이 들어가면 풀 수 없습니다.

 

원론적으로는 자신의 아이디에 맞게 언어를 선택하여, 숫자를 아스키코드로 변환하는 로직을 사용해 알파벳을 표기하는 식으로 숫자 차력쇼를 펼쳐가며 풀면 됩니다.

 

제 경우 아이디가 kyr9389 이기 때문에, C++을 이용하여 풀었습니다.

 

#include <bits/stdc++.h>
using namespace std;

int main() {
	auto a = 'a';
	auto b = a;
	a += 10;
	b += 24;
	auto c = b;
	c -= 7;
	cout << a << b << c << 1+1+7 << 1+1+1 << 1+7 << 1+1+7;
}

 

그럼 정말 위 조건에 모두 해당하면 이 문제를 풀 수 없는걸까요?

다행히 그렇지는 않습니다. 다만 golfscript를 사용하거나, 아희와 같은 brainfuck 언어를 다룰 수 있어야 합니다.

 

밤밣따빠밣밟따뿌
빠맣파빨받밤뚜뭏
돋밬탕빠맣붏두붇
볻뫃박발뚷투뭏붖
뫃도뫃희멓뭏뭏붘
뫃봌토범더벌뿌뚜
뽑뽀멓멓더벓뻐뚠
뽀덩벐멓뻐덕더벅

 

아희로 Hello, World! 를 출력하는 예시입니다.

 

 

사실 이 정도 수준까지 오셨다면 위에서 언급한 언어의 제한도 어느정도 우회할 실력이 있으실 수도 있습니다. 이 부분에선 에디토리얼을 참고하셔서 rhdqor213님의 풀이를 보시면 좋겠습니다. 정말 대단하셨습니다.

 

👉 문제 풀어보기

 

 

 

"" 번 문제 : Proprietary Problem

☕번 문제

 

마지막 문제입니다. 이젠 문제 지문도 나오지 않습니다. 이 문제의 경우 여섯번째 구데기컵 사전에 열린 행사에 참여한 사람들만 풀 수 있는 문제입니다.

 

 

 

이번 구데기컵이 개최되기 이전, 구데기컵 X solved.ac 카페가 열렸습니다. 구데기컵 전야제 같은 느낌이었는데, 각종 이벤트가 열리고 굿즈도 수령할 수 있는 흥미로운 콜라보였습니다.

 

저는 아쉽게도 일정이 있어 직접 방문하지는 못했고, 지인으로부터 굿즈와 기념 카드만 전달받았습니다.

 

콜라보 카페에서 받을 수 있던 굿즈들

 

사진상으로 가운데에 보이는 카드에 쓰여있는 코드를 solved.ac 에 입력하게 되면, 구데기 정품 인증 코드를 받을 수 있습니다. 인벤토리에 들어오게 되었는데, 따로 안내를 못받아 있는줄도 모르고... 나중에야 풀게 되었네요. 아쉽지만 재밌었습니다.

 

 

 

 

마치며

재밌는 문제들이 많아서 푸는 내내 즐거웠습니다. 비록 풀진 못했지만 출제자 Kipa님이 읽어주시는 한 시간 분량의 문제 설명 영상이라던가, 출제자 분들의 대화로만 되어있는 문제 등 읽는 것만으로도 재밌는 문제가 많았기 때문에 보는 맛이 더 있었습니다.

 

 

다음에도 구데기컵이 열리게 된다면, 뇌를 말랑말랑하게 만들어서 참여해봐야겠네요.

이상으로 늦은 구데기컵 후기를 마칩니다.

반응형

'주저리' 카테고리의 다른 글

우아콘 2023 후기  (1) 2023.11.17
solved.ac Grand Arena #1 참여 후기  (0) 2023.08.08
2022년을 보내주며  (7) 2023.01.02
우아한테크코스 4기 수료 후기  (4) 2022.12.04
우아한테크코스 4기 리크루팅 데이 후기  (2) 2022.11.13

댓글