반응형
포인트
- 재귀를 이용한 풀이가 돋보이는 문제입니다. 여러 가지 풀이들도 있었는데 저는 이게 먼저 떠올라서 작성합니다.
- 재귀 문제를 처음 보시는 분들이시라면 한번 따라 처보면서 이해를 해보시면 더욱 좋을 것 같아요
🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다.
python
def go(index: int, total: int) -> None:
global result
if index == 12:
result = min(total, result)
return
if index > 12 or result < total:
return
# 그 달을 1일 권으로 계산하는 경우
go(index + 1, total + _1 * data[index])
# 그 달을 1달 권으로 계산하는 경우
go(index + 1, total + _11)
# 그 달을 3달 권으로 계산하는 경우
go(index + 3, total + _3)
for test in range(1, int(input()) + 1):
_1, _11, _3, _111 = map(int, input().split())
data = list(map(int, input().split()))
result = _111
go(0, 0)
print('#{} {}'.format(test, result))
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] Minimum Operations to Make Array Equal (0) | 2021.04.06 |
---|---|
[알고리즘] 키패드 누르기 (0) | 2021.04.06 |
[알고리즘] 숫자 만들기 (0) | 2021.04.05 |
[알고리즘] 전위, 중위, 후위 순회 (Traverse) (0) | 2021.04.05 |
[알고리즘] 드래곤 커브 (0) | 2021.04.03 |
댓글