반복문을 이용한 풀이
arr = [5, 3]
n = int(input())
min_cnt = 10000
cnt = 0
flag = 1
while n>0:
if n%5:
n -= 3
cnt += 1
else:
n -= 5
cnt += 1
if n < 0:
flag = 0
# find(n, 0)
if flag:
print(cnt)
else:
print(-1)
재귀로 풀어서 시간초과 뜸
import sys
def find(sugar,cnt):
global min_cnt, flag
if sugar < 0:
# flag = 0
return
if min_cnt < cnt:
return
if sugar == 0:
flag = 1
if min_cnt > cnt:
min_cnt = cnt
return
for x in range(2):
find(sugar - arr[x],cnt +1)
if min_cnt == 10000000000:
flag = 0
return
t = int(input())
for tc in range(t):
arr = [5,3]
n = int(sys.stdin.readline())
min_cnt =10000000000
flag = 1
find(n,0)
if flag:
print(min_cnt)
else:
print(-1)
'알고리즘 문제풀이' 카테고리의 다른 글
Swea D3_ 베이비진 게임 Python 그리디 (0) | 2024.02.28 |
---|---|
Swea D3. 컨테이너 운반 Python 그리드 (0) | 2024.02.28 |
Swea D3_16945.베이비진 Python 재귀함수, 순열 (1) | 2024.02.28 |
Swea D3_11763. 전자카트 Python 재귀함수, 백트래킹 (1) | 2024.02.28 |
배열최소합 ver2 재귀, 백트래킹 (1) | 2024.02.26 |