미궁게임 더라비린스
[2023-07-01] 출제자의 아이콘 코코팜 14:07:17 6,332 클리어 10명 참여 35명

정오에 힌트가 공개됩니다.


10:00 - 와 아직도 정답이 안 나올 거라고 생각도 못 했습니다.

혹시 지금 아직 풀려고 시도하시는 분들이 어디까지 와 있는지 알 수 있을까요? 남은 시간 동안 최대한 좋은 경험을 드리기 위해서 조금이라도 데이터가 있으면 좋겠습니다. 쪽지 주시면 감사히 받겠습니다.


12:00 - 힌트의 양이 너무 많아서 미궁의 형식으로 힌트를 드립니다: 힌트 미궁

초반 기술적인 부분에 막힌 분들께 크게 도움이 될 겁니다.

오후 4시에 힌트가 추가됩니다.


13:00 - 첫 방의 오답들을 보니, 첫 단계에서 막힌 분들이 많은 것 같습니다. 여기에 힌트를 추가했습니다.


16:00 - "시작" 방에 "힌트 추가"를 입력하세요. 중후반 단계의 힌트가 추가됩니다.

COLOR CODE

시작

퀴즈 내용은 전혀 없기 때문에, 퀴즈 제목이 말하는 출제자의 아이콘을 봐야 합니다. 더라비린스 사이트가 지원하는 최대 크기인 20x20의 아이콘을 찾을 수 있습니다: . 확대하면 이렇게 보입니다.

제일 단순하게 눈에 보이는 것은 밝은 픽셀과 어두운 픽셀이 있다는 것입니다. 파일 이름이 힌트 하듯이 이것을 점자로 읽으면 다음과 같은 메시지가 나옵니다: "힌트 각 색깔 채널의 마지막 일곱 비트를 아스키로 읽어야 합니다"

이제 이 힌트가 지시하는 데로 따라야 합니다. 이제 아쉽게도 피하기 어려운 가장 기술적인 부분이 시작됩니다. 여기서 "각 색깔 채널"은 빨강/초록/파랑/알파 채널을 뜻하고, "마지막 일곱 비트"는 색의 값을 2진법으로 나타내고 마지막 일곱 자릿수만 사용하라는 뜻입니다. 이 파일은 32비트 RGBA 색을 사용하므로, 각 채널당 8비트가 사용됩니다. 따라서 점자에 이용된 첫 자릿수만 무시하면 됩니다. 마지막으로 "아스키"는 7비트의 2진법 숫자로 문자를 나타내는 체계인 ASCII를 뜻합니다.

예를 들어 3행 4열 픽셀을 이미지 에디터에 열어서 보면 빨간색 값이 178임을 알 수 있습니다. 이를 이진법으로 나타내면 10110010입니다. 따라서 마지막 7자리는 0110010이고 십진법으로 다시 변환하면 50입니다. 이를 ASCII 표에서 찾으면 숫자 "2"임을 알 수 있습니다.

만약 코딩을 하실 줄 아신다면 간단한 프로그램을 만들어 정보를 변환할 수 있습니다. 예를 들어 Python으로 이렇게 프로그램을 할 수 있습니다:

from PIL import Image
    
with Image.open("braille.png") as image:
    pixels = image.load()
    for y in range(image.size[1]):
        for x in range(image.size[0]):
            print(chr(pixels[x, y][0] & 0b1111111), end='')
        print()

간단한 작업이기 때문에, ChatGPT한테 프로그램을 대신 해달라고 해도 작동이 되는 답을 줍니다. 그러나 코딩을 전혀 못 해도, 수작업으로도 데이터를 빼낼 수 있습니다. 2진법 여덟 자릿수의 첫 자릿수를 무시한다는 것은 수가 128이상이면 128을 빼기만 하면 됩니다. 이미지 편집 프로그램에 능하시면, 밝은 부분을 difference layer를 만들어서 빼내고, 색 채널을 분리한 뒤, magic wand로 같은 픽셀들을 선택해서 작업을 할 수도 있습니다. 실수를 할 수 있다는 위험이 생기기는 하지만, 반복되는 숫자가 많기 때문에 요령 있게 하면 할만합니다. 아니면 이미지를 BMP으로 저장하고 결과를 텍스트 에디터로 여는 방법도 있습니다 (palette를 사용하지 않는게 중요하고, 밑에서 위로 읽어야 됩니다).

정오에 열리는 열린 힌트 미궁에서 얻은 구글 시트를 사용하면 빠르게 변환이 가능합니다. =if(B2<128, char(B2), char(B2-128)) 또는 =char(bitand(B2, 127))의 수식을 사용하면 됩니다. 만약 이것도 어려우시면 바꾸기 기능을 이용해 변환할 수도 있습니다 (ctrl+H를 이용해 모든 65와 193을 "A"로 바꾸고, 모든 66과 194를 "B"로 바꾸고, ...).


빨강

빨강 채널의 데이터는 다음과 같습니다:

075 SMILEY 999
.2.21..21...12..
.2....1...12...1
.1.2.1..22....1.
.3...3..2..2....
........3..5.6.4
36...63.3....6..
3..5....3..7.6..
.......12....4.2
.5.3.54...455...
........0.2...21
.3..5........4..
.0....0....43..2
.....0..0.2.....
.112......1343.0
.21..212.2......
12.2.2..1...1..1
RED

첫 줄의 숫자와 "SMILEY"의 배치가 지뢰 찾기를 연상시킵니다. 지뢰 찾기 규칙을 적용해 빈칸을 채웁니다. 첫 줄 왼쪽 숫자는 지뢰 개수를 나타내는데, 하나뿐인 답을 찾기 위해서는 이 정보도 사용해야 합니다.

075 SMILEY 999
.2🚩21.🚩21.🚩.12🚩.
🚩2..🚩.1.🚩.12🚩..1
.1.2.1..22....1.
.3.🚩.3..2🚩.2🚩.🚩.
🚩🚩🚩🚩🚩🚩🚩.3🚩.5🚩6🚩4
36🚩🚩🚩63.3🚩🚩🚩🚩6🚩🚩
3🚩🚩5🚩🚩..3🚩.7🚩6🚩.
🚩🚩...🚩🚩12🚩🚩🚩🚩4🚩2
.5.3.54...455...
🚩🚩🚩🚩🚩🚩🚩.0.2🚩🚩🚩21
.3.🚩5.....🚩..4🚩.
.0.🚩..0...🚩43.🚩2
...🚩.0..0.2🚩🚩🚩..
.112......1343.0
🚩21.🚩212🚩2..🚩...
12🚩2.2🚩.1.🚩.1.🚩1
RED

지뢰가 만드는 모양에서 보이듯이 빨강 채널의 정답은 "추방"입니다.


초록

초록 채널의 데이터는 다음과 같습니다:

RAILROAD 999
4/6 2/4 3/5 4/6 2/4
431 224 816 548 528
--O---O---O---O---O
|
|
1/4 1/6 2/6 |
141 411 P144 |
O---O----O---O---O
| 135 114
| 1/6 3/5
|
|
O----O----O----O---
128 P146 139 222
8/9 5/7 2/8 1/6
GREEN

동그라미가 선으로 연결된 모습이 전철을 떠올리게 합니다. 제목도 철도(railroad)를 힌트하고 있습니다. 세 자릿수 숫자는 수도권 전철역의 역 번호입니다. 역 이름이 모두 서울시 구 이름임이 의도된 경로에 들었음을 확인시켜 줍니다 ("999"도 "구"를 힌트 합니다). "A/B"는 역 이름의 B개의 낱자중 A번째 것을 빼 오라는 지시입니다.

역 번호 역 이름 낱자 인덱싱 빼낸 낱자
431 동작 ㄷㅗㅇㅏㄱ 4/6
224 서초 ㅊㅗ 2/4
816 송파 ㅅㅗㅍㅏ 3/5
548 강동 ㄱㅏㅇㅗㅇ 4/6
528 마포 ㅍㅗ 2/4
114 도봉 ㄷㅗㅗㅇ 3/5
135 용산 ㅛㅇㅅㅏㄴ 1/6
P144 금천구청 ㅁㅊㅓㄴ 2/6
411 노원 ㅗㅇㅜㅓㄴ 1/6
141 구로 ㅜㄹㅗ 1/4
128 동대문 ㄷㅗㅇㄷㅏㅣㅁ 8/9
P146 관악 ㄱㅗㅏㄴㅏㄱ 5/7
139 영등포 ㅇㄷㅡㅇㅍㅗ 2/8
222 강남 ㅏㅇㄴㅏㅁ 1/6

빼낸 낱자를 모아 순서대로 읽으면 "정답은 구역"이라는 메시지가 나옵니다 ("구"와 "역"을 합친 말장난입니다).


파랑

파랑 채널의 데이터는 다음과 같습니다:

*SLDMSDMFH TLWKRGKSM
S WPDLFGH RNRQH
*XEON IAEVYEON IIIAV
IOXIIAPVIIIEUL VANI
IIEUNIIIA
*JGONJGYOJOGA JCHUJL
YEJONHJAN 2J016J DE
UJRAMJA
*EAJUB IUMAGEADKOEJ
KOEYRKOP GNEAJNOEJ
*HET STFIR THLABYRIN
EDCREAT BY LEPUP
*_______ZN LFSJZQ SF
JJT RJTPSJZSIF
BLUE

각 단서는 다른 방법으로 암호화되어 있습니다.

  1. 키보드에서 대응하는 영문자가 쓰였습니다. 네이버나 다음에 "SLDMSDMFH"를 검색만 해도 자동으로 변환해 줍니다. 단서는 "니은으로 시작하는 제일호 국보"이고 정답은 "남대문"입니다.
  2. 로마자로 표기되었으나, 초성은 로마 숫자로 쓰여있습니다. 예를 들어 "XEON"은 "10 + EON"이고, 초성은 열 번째 자음인 "ㅊ"이고, 결국 "천"으로 해독됩니다. 단서는 "천 개면 다보탑을 만든다"이고 정답은 "전"(1/100원)입니다.
  3. 세글자마다 "J"가 끼워 넣어져 있습니다. 단서는 "공유가 출연한 2016 드라마"이고 정답은 "도깨비"입니다.
  4. 거꾸로 적혀 있습니다. 단서는 "전쟁 폭력 적대감의 부재"이고 정답은 "평화"입니다.
  5. 영어로 번역된 후 각 단어의 뒤 두 글자가 앞으로 이동되어 있습니다. 예를 들어 "예"는 "EXAMPLE"로 번역되고 "LEEXAMP" 로 암호화됩니다. 단서는 "THE FIRST LABYRINTH CREATED BY PUPLE" (퍼플이 만든 첫 미궁)이고 정답은 "선물"입니다.
  6. 카이사르 암호가 쓰였습니다. 5글자 만큼 밀려 있습니다 (A -> F, B -> G, C -> H, ...). 단서는 "__의 간을 내어 먹는다"이고 정답은 "벼룩"입니다.

이미 파란색 채널의 정답을 눈치채신 분들도 많겠지만, 만약 아직도 모른다면 각 정답을 다시 같은 방법으로 암호화하고 앞 글자를 읽으면 정답이 나옵니다.

정답 암호화된 정답
남대문 SKAEOANS
IXEON
도깨비 JDOKJKAEJBI
평화 AWHGNOEYP
선물 NTPRESE
벼룩 GDJTWZP

따라서 채널 정답은 "시장"이고, 6개의 정답에 접미사로 사용할 수 있습니다 (예: 남대문시장).


알파

~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~ YOUTU.BE/ ~~~~
~~~ cvtyFk4DKGU ~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~WHITE

유튜브 링크를 열면 짧은 비디오를 볼 수 있습니다:

다섯 종류의 과자가 보이는데, 각 과자는 그 과자 이름의 낱자를 나타냅니다. 먹어버린 과자에 대응하는 낱자를 씹는 소리 수를 이용해 정렬하면 "단거"라는 답이 나옵니다.


메타

이제 정답을 모두 모아 메타퍼즐(이전 퍼즐의 정답을 이용하는 퍼즐)을 풀어서 최종 정답을 내야 합니다. 지금까지의 정답은 다음과 같습니다.

  • 빨강: 추방
  • 초록: 구역
  • 파랑: 시장
  • 알파: 단거

메타의 shell(메타퍼즐의 내용)은 PNG 파일의 메타데이터인 "tEXt" chunk에서 찾을 수 있습니다. 이 사이트등의 여러 사이트나 툴들이 메타데이터를 읽는 기능을 지원해 줍니다. 아니면 그냥 파일을 텍스트 에디터로 열어도 뒷부분에 보입니다.

'METAPUZZLE': 'R. __58, G. _93_, B. 26___, W. 1_7_4____'

메타의 빈칸이 나타내는 글자 수에 맞는 단어를 찾아야 합니다. 이 메타의 기믹은 색이름을 앞에 붙였을 때 feeder(메타퍼즐이 이용하는 퍼즐들) 정답과 알맞다는 것입니다. 예를 들어 RED를 앞에 더하면 추방에 알맞은 4글자 단어는 CARD입니다. 알파 채널 오른쪽 밑 구석에서 보이듯이 알파는 하얀색으로 교체됩니다.

  • 빨강: 추방 - RED CARD
  • 초록: 구역 - GREEN BELT
  • 파랑: 시장 - BLUE OCEAN
  • 하양: 단거 - WHITE CHOCOLATE

Shell에서 주어진 숫자로 최종 정답을 빼내면 "COLOR CODE"라는 최종 정답이 나옵니다 ("색으로 정보를 나타내는 시스템"이라는 뜻이지만, 글자 그대로 읽으면 "색으로 만든 암호"라고도 읽을 수 있는 말장난입니다). Feeder중 하나를 못 풀어도 최종 정답은 알아낼 수 있습니다 (반대로 최종 정답에서 빼먹은 정답을 알아내는 backsolve도 가능합니다).

    R. CARD
       __58
         
    G. BELT
       _93_
        
    B. OCEAN
       26___

    W. CHOCOLATE
       1_7_4____

       COLORCODE
       123456789

후기

이 퍼즐에 아쉬운 점들이 몇 개 있습니다.

  • 가장 걱정이 되는 지점은 시작에 ASCII 텍스트를 읽는 부분입니다. 이런 분야를 잘 다루지 않는 분들께는 아주 어려울 수도 있습니다. 이게 겨우 1KB짜리 20x20 이미지로 만드는 퍼즐이라, 더 단순하게 만들기는 힘들 것 같습니다. 그래서 정오에 낸 힌트에서 도움을 많이 주고자 했습니다.
  • WHITE 대신에 ALPHA를 사용하는 게 더 적절한데, ALPHA로는 쓸만한 단어가 안 나와서 포기했습니다.
  • 원래 계획은 알파/흰색 퍼즐에서 ㄴ을 "바나나킥"에서 빼려고 했는데, 제가 한국계 캐나다인이라서 구하는 게 어려웠습니다. 제가 사는 도시에 있는 모든 아시아 식품 가게에 갔는데도 찾을 수 없었습니다. 계란과자는 모양이 평범해서 바나나킥을 원했지만, 두 글자밖에 없는 "칸쵸"보다는 나은 것 같아서, 결국 할 수 없이 "계란과자"를 선택했습니다.
  • 원래 원했던 정답은 "COLOR-CODED"인데, D를 두 개 가진 feeder 정답을 못 찾았습니다. 10번째 글자를 나타내는 것도 문제기 때문에 이것도 포기했습니다 ("10"이라는 수를 한 글자에 담아내야 합니다. "🔟"같은 유니코드 캐릭터를 "iTXt" chunk를 이용해서 쓸 수 있긴 합니다).

제가 만든 9주년 이벤트 공모작 미궁이 얼마 전에 공개되었습니다. 이 퀴즈가 나쁘지 않았다면 한 번 시도해 주세요. 최초의 한국어 퍼즐헌트 또한 곧 나올 예정이니 기대해 주세요.

댓글

zyzyvaa 2023-07-02 00:00 _
0
멋진 미니 헌트
Railbow 2023-07-02 00:09 _
0
대단해요...
한멍이 2023-07-02 01:41 _
0
더줘!!!!! 더줘!!!!!!
Black체리 2023-07-02 01:50 _
0
간만에 보는 지옥 난이도의 오퀴네요
코코팜 2023-07-02 08:30 _
0
☄️
하이퍼볼트 2023-07-02 09:10 _
0
LEGEND