ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2일차 - 물품 관리 시스템 (上)
    Advent of Code/2018 2018. 12. 7. 16:48

    https://adventofcode.com/2018/day/2


    2일차 - 물품 관리 시스템



    시간 속에서의 추락이 멈춘 후, 당신은 숨을 고르고 장치의 화면을 확인한다.

    "목적지에 도착했습니다. 여기는 1518년, 북극 수납고 83N10입니다."

    성공이다. 이제 이변을 발견하러 가야 한다.



    수납고 밖에서 발소리와 목소리가 들린다.

    "... 나도 모르겠네. 하지만 이제 많은 이들의 집에 굴뚝이 있으니, 그가 이 안에 숨을 수도 있지 않겠나."

    다른 목소리가 답한다.

    "저희는 사실 그가 좁은 공간에 들어갈 수 있도록 새로운 을 만들고 있지요. 그런데 며칠 전에, 시제품 천이며 도안이며 모든 것들을 잃어버렸다지 뭡니까! 저희 중 아무도 이 계획의 가장 중요한 부분을 기억해 내지 못하고 있는 모양입니다...."


    "자네들 창고에 천이 몇 상자는 되지 않느냐? 그것들은 한 데 모여 있을 것이고 말일세. 그러니 상자들의 ID는 비슷하겠지. 잘못하면 비슷한 ID 두 개를 찾는 데 영겁이 걸릴 지도 모를 일이야...."

    두 사람은 점점 멀어져서 그들이 하는 말을 더 이상 알아듣지 못했다.


    늦은 밤 당신은 창고에 잠입한다. (누군가에게 발견되기라도 한다면 어떤 패러독스가 발생할지도 모른다.) 당신의 멋진 손목시계는 모든 상자를 빠르게 스캔해 가능성 있는 상자들의 목록(퍼즐의 입력)을 만들어 냈다.


    상자 하나도 놓치지 않기 위해서, 당신은 이 가능성 있는 상자들을 다시 분석해 똑같은 글자가 정확히 두 번 들어간 ID와 똑같은 글자가 정확히 세 번 들어간 ID의 개수를 따로 세어 두었다. 이 두 수를 곱해 간단한 체크섬을 만들고 장치에 나타난 것과 비교할 것이다. 


    예를 들어 상자 ID가 다음과 같다면

    • abcdef에는 두 번 또는 세 번만 들어간 글자가 없다.
    • bababc에는 a가 두 번, b가 세 번 들어간다. 두 가지 모두 취급한다.
    • abbcde에는 b가 두 번 들어가지만, 세 번 들어가는 글자는 없다.
    • abcccd에는 c가 세 번 들어가지만, 두 번 들어가는 글자는 없다.
    • aabcdd에는 a가 두 번, d가 두 번 들어가지만 한 번만 취급한다.
    • abcdee에는 e가 두 번 들어간다.
    • ababab에는 a가 세 번, b가 세 번 들어가지만 한 번만 취급한다.


    이 상자 ID 중 똑같은 글자가 두 번 들어간 것은 4개, 세 번 들어간 것은 3개이다. 따라서 체크섬은 4 * 3 = 12가 된다.


    당신이 입수한 상자 ID 목록의 체크섬은?

    'Advent of Code > 2018' 카테고리의 다른 글

    2일차 - 물품 관리 시스템 (下)  (0) 2018.12.07
    Advent of Code 2018 - 목차  (0) 2018.12.07
    1일차 - 시간 보정 (下)  (0) 2018.12.07
    1일차 - 시간 보정 (上)  (0) 2018.12.07
Designed by Tistory.