Skip to content

Latest commit

 

History

History

day3

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Day 3: 배낭 재정비 (Rucksack Reorganization)

https://adventofcode.com/2022/day/3

Part 1

엘프 한 명은 정글 여행에 필요한 물품을 모든 배낭에 싣는 중요한 임무를 맡고 있습니다. 안타깝게도 그 엘프는 포장 지침을 제대로 따르지 않았기 때문에, 몇 가지 물품을 재정렬해야 합니다.

각 배낭에는 두 개의 큰 구획이 있습니다. 같은 종류의 모든 물품들은 정확히 두 구획 중 하나에 들어가도록 되어 있습니다. 짐을 싸는 엘프는 배낭당 정확히 하나의 종류에 대해 이 규칙을 따르지 않았습니다.

엘프들은 현재 각 배낭(퍼즐 입력)에 있는 모든 물품의 목록을 만들었지만, 문제되는 물품을 찾는 데는 도움이 필요합니다. 각 물건의 종류는 하나의 소문자 또는 대문자로 식별됩니다. (즉, aA는 다른 종류를 나타냅니다).

각 배낭의 항목 목록은 한 줄의 문자열로 제공됩니다. 주어진 배낭은 항상 두 구획 각각에 같은 수의 항목을 가지고 있고, 그렇기때문에 문자열의 전반부는 첫 번째 구획의 물품들을 나타내고 문자열의 후반부는 두 번째 구획의 물품들을 나타냅니다.

예를 들어 6개의 배낭에 다음과 같은 물품 목록이 있다고 가정합시다.

vJrwpWtwJgWrhcsFMMfFFhFp
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
PmmdzqPrVvPwwTWBwg
wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
ttgJtRGJQctTZtZT
CrZsJsPPZsGzwwsLwLmpwMDw
  • 첫 번째 배낭에는 vJrwpWtwJgWrhcsFMMfFFhFp 물품들이 들어있습니다. 즉, 첫 번째 배낭에는 vJrwpWtwJgWr 물품들이, 두 번째 배낭에는 hcsFMMfFFhFp 물품들이 들어 있습니다. 두 구획에 모두 포함된 물품 종류는 소문자 p가 유일합니다.
  • 두 번째 배낭의 구획들에는 jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL가 포함되어 있습니다. 두 구획에 모두 포함된 물품 종류는 대문자 L가 유일합니다.
  • 세 번째 배낭의 구획들에는 PmmdzqPrV및vPwwTWBwg가 포함되어 있습니다. 두 구획에 모두 포함된 물품 종류는 대문자 P가 유일합니다.
  • 네 번째 배낭의 구획들에는 v 타입의 물품이 모두 포함됩니다.
  • 다섯 번째 배낭의 구획들에는 t 타입의 물품이 모두 포함됩니다.
  • 여섯 번째 배낭의 구획들에는 s 타입의 물품이 모두 포함됩니다.

물품 재정렬의 우선 순위를 지정하기 위해, 모든 물품 종류를 우선 순위로 변환할 수 있습니다.

  • 소문자 물품 종류 a부터 z까지의 우선 순위는 1부터 26까지 입니다.
  • 대문자 물품 종류 A부터 Z까지의 우선 순위는 27부터 52까지 입니다.

위의 예에서 각 배낭의 양쪽 칸에 모두에 나타나는 물품 종류의 우선 순위는 16(p), 38(L), 42(P), 22(v), 20(t) 및 19(s)입니다. 이들의 합계는 157입니다.

각 배낭의 두 구획에 모두 나타나는 물품 종류를 찾으십시오. 해당 물품 종류의 우선순위 합계는 얼마입니까?

Part 2

잘못 놓인 물품들의 식별을 끝내니, 엘프들이 또 다른 문제를 찾아왔습니다.

엘프들은 안전을 위해 3명씩 한 그룹으로 나누기로 했습니다. 모든 엘프는 그룹을 식별하는 배지를 가지고 있습니다. 효율을 위해 배지는 그룹의 세 엘프 모두가 가지고 있는 물품으로 정했습니다. 즉, 어느 한 그룹의 배지가 B라면, 세 엘프 모두 자신의 가방에 B를 가지고 있으며, 다른 물품 종류에 대해서는 최대 두 명의 엘프만이 가지고 있습니다.

문제는 누군가가 올해 업데이트된 정품 스티커를 배지에 붙이는 것을 잊었다는 것입니다. 새로운 정품 스티커를 부착하려면 모든 배지를 배낭에서 꺼내야 합니다.

게다가 아무도 각 그룹의 배지에 해당하는 물품 종류를 기록하지 않았습니다. 어떤 물품이 배지에 해당하는지 알 수 있는 유일한 방법은 각 그룹의 세 엘프 모두가 공통적으로 가지고 있는 물품 종류를 찾는 것입니다.

목록에 있는 세 줄은 같은 한 그룹에 해당하고, 각 그룹은 서로 다른 종류의 배지를 가질 수 있습니다. 위의 예에서 첫 번째 그룹의 배낭들은 처음 세 줄입니다.

vJrwpWtwJgWrhcsFMMfFFhFp
jqHRNqRjqzjGDLGLrsFMfFZSrLrFZsSL
PmmdzqPrVvPwwTWBwg

그리고 두 번째 그룹의 배낭들은 다음 세 줄입니다.

wMqvLMZHhHMvwLHjbvcjnnSBnvTQFn
ttgJtRGJQctTZtZT
CrZsJsPPZsGzwwsLwLmpwMDw

첫 번째 그룹에서 세 개의 배낭 모두에 나타나는 유일한 물품 종류는 소문자 r입니다. 그러니 이것이 그들의 배지인 것은 틀림없습니다. 두 번째 그룹에서는 Z가 배지에 해당합니다.

스티커 부착하는 것을 체계화하기 위해, 이 물품들의 우선 순위를 알아내야 합니다. 위 예시에서 첫 번째 그룹의 경우 18(r), 두 번째 그룹의 경우 52(Z)입니다. 이들의 합계는 70입니다.

세명으로 이루어진 엘프 그룹의 배지에 해당하는 물품 종류를 찾으세요.이 배지들의 우선순위 합계는 얼마입니까?