https://adventofcode.com/2019/day/1
요정들은 우주선에 우주선에 당신을 데려가 출항할 준비를 합니다.
출항 전 첫번째 회의에서, 요정들은 연료가 닿는 한 이동하는 것에 찬성했습니다. 하지만 그들은 필요한 연료를 아직 계산하지 않았습니다.
주어진 모듈이 발사되기 위해 필요한 연료의 양은 그것의 질량에 의존합니다. 구체적으로, 모듈이 필요로 하는 연료의 양은 그 모듈의 질량을 3으로 나누어, 내림하고, 거기에 2를 뺀 것 입니다.
예를들어
- 질량이
12
라면,3
으로 나누고 내림을 하면4
가 되고, 거기에2
를 빼면2
를 얻습니다. - 질량이
14
라면,3
으로 나누고 내림을 하면 마찬가지로4
가 되고, 거기에2
를 빼면 필요한 연료의 양은2
가 됩니다. - 질량이
1969
라면, 필요한 연료의 양는654
가 됩니다. - 질량이
100756
라면, 필요한 연료의 양는33583
이 됩니다.
우리는 필요한 총 연료의 양을 알아야 합니다. 총 연료의 양은 각 모듈의 질량(퍼즐의 입력)에 대해 필요한 연료를 각각 계산한 다음, 그 값들을 모두 더한 값이 됩니다.
우주선의 모듈들이 필요로 하는 연료의 총 합은 얼마입니까?
출항 전 두번째 회의에서, 로켓 방정식을 담당하고 있던 요정이 출항에 반대합니다. 방금 실은 연료에 의해 필요해진 추가 연료를 계산하는 것을 깜빡했기 때문입니다.
연료 역시 모듈과 같이 추가 연료를 필요로 합니다. - 연로의 질량을 3으로 나누고, 내림한 뒤, 2를 빼는 것. 또 이렇게 추가한 연료 역시 추가 연료를 필요로 하고, 그 이후도 반복적으로 추가 연료를 필요로 할 것 입니다. 어떤 질량에 대해 필요한 연료의 양이 음수로 계산되는 경우, 그것은 더이상 연료를 필요로 하지 않는다고 생각할 수 있습니다.
즉, 연료의 계산은 다음과 같이 됩니다. 우선 각 모듈에 대해 필요한 연료의 양을 구하고 그들을 모두 합칩니다. 그리고 그렇게 구한 총 연료의 양을 입력값으로 하여, 필요한 연료의 양이 0이하가 될 때까지 계산을 반복합니다.
예를 들어
- 질량이
14
인 모듈은2
만큼 연료를 필요로 하고, 이 경우 추가 연료는 필요하지 않습니다. (2를 3으로 나누고 내림하면 0이므로, 음수가 될 것입니다.) 따라서 총 필요한 연료는2
입니다. - 질량이
1969
인 모듈은654
의 연료를 필요로 합니다. 그리고654
의 연료는216
의 추가 연료를 필요로 하고,216
의 연료는70
의 추가 연료를,70
의 연료는21
의 추가 연료를,21
의 연료는5
의 추가 연료를 필요로 합니다. 따라서 질량이1969
인 모듈의 필요한 총 연료의 양은 이들을 모두 더한966
입니다. - 질량이
100757
인 모듈은 총50346
의 연료를 필요로 합니다.
추가로 필요한 연료까지 합하면, 우주선의 모듈들이 필요로 하는 연료의 총 합은 얼마입니까?