Skip to content

Latest commit

 

History

History

day1

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Day 1: 로켓 방정식의 횡포 (The Tyranny of the Rocket Equation)

https://adventofcode.com/2019/day/1

Part 1

요정들은 우주선에 우주선에 당신을 데려가 출항할 준비를 합니다.

출항 전 첫번째 회의에서, 요정들은 연료가 닿는 한 이동하는 것에 찬성했습니다. 하지만 그들은 필요한 연료를 아직 계산하지 않았습니다.

주어진 모듈이 발사되기 위해 필요한 연료의 양은 그것의 질량에 의존합니다. 구체적으로, 모듈이 필요로 하는 연료의 양은 그 모듈의 질량을 3으로 나누어, 내림하고, 거기에 2를 뺀 것 입니다.

예를들어

  • 질량이 12라면, 3으로 나누고 내림을 하면 4가 되고, 거기에 2를 빼면 2를 얻습니다.
  • 질량이 14라면, 3으로 나누고 내림을 하면 마찬가지로 4가 되고, 거기에 2를 빼면 필요한 연료의 양은 2가 됩니다.
  • 질량이 1969라면, 필요한 연료의 양는 654가 됩니다.
  • 질량이 100756라면, 필요한 연료의 양는 33583이 됩니다.

우리는 필요한 총 연료의 양을 알아야 합니다. 총 연료의 양은 각 모듈의 질량(퍼즐의 입력)에 대해 필요한 연료를 각각 계산한 다음, 그 값들을 모두 더한 값이 됩니다.

우주선의 모듈들이 필요로 하는 연료의 총 합은 얼마입니까?

Part 2

출항 전 두번째 회의에서, 로켓 방정식을 담당하고 있던 요정이 출항에 반대합니다. 방금 실은 연료에 의해 필요해진 추가 연료를 계산하는 것을 깜빡했기 때문입니다.

연료 역시 모듈과 같이 추가 연료를 필요로 합니다. - 연로의 질량을 3으로 나누고, 내림한 뒤, 2를 빼는 것. 또 이렇게 추가한 연료 역시 추가 연료를 필요로 하고, 그 이후도 반복적으로 추가 연료를 필요로 할 것 입니다. 어떤 질량에 대해 필요한 연료의 양이 음수로 계산되는 경우, 그것은 더이상 연료를 필요로 하지 않는다고 생각할 수 있습니다.

즉, 연료의 계산은 다음과 같이 됩니다. 우선 각 모듈에 대해 필요한 연료의 양을 구하고 그들을 모두 합칩니다. 그리고 그렇게 구한 총 연료의 양을 입력값으로 하여, 필요한 연료의 양이 0이하가 될 때까지 계산을 반복합니다.

예를 들어

  • 질량이 14인 모듈은 2만큼 연료를 필요로 하고, 이 경우 추가 연료는 필요하지 않습니다. (2를 3으로 나누고 내림하면 0이므로, 음수가 될 것입니다.) 따라서 총 필요한 연료는 2입니다.
  • 질량이 1969인 모듈은 654의 연료를 필요로 합니다. 그리고 654의 연료는 216의 추가 연료를 필요로 하고, 216의 연료는 70의 추가 연료를, 70의 연료는 21의 추가 연료를, 21의 연료는 5의 추가 연료를 필요로 합니다. 따라서 질량이 1969인 모듈의 필요한 총 연료의 양은 이들을 모두 더한 966 입니다.
  • 질량이 100757인 모듈은 총 50346의 연료를 필요로 합니다.

추가로 필요한 연료까지 합하면, 우주선의 모듈들이 필요로 하는 연료의 총 합은 얼마입니까?