본문 바로가기
알고리즘

[알고리즘] 수영장

by keel_im 2021. 4. 5.
반응형

포인트

  • 재귀를 이용한 풀이가 돋보이는 문제입니다.  여러 가지 풀이들도 있었는데 저는 이게 먼저 떠올라서 작성합니다. 
  • 재귀 문제를 처음 보시는 분들이시라면 한번 따라 처보면서 이해를 해보시면 더욱 좋을 것 같아요

🧶문서는 항상 수정될 수 있습니다. 비판은 환영합니다. 

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))
반응형

댓글