백준 2839 설탕 배달

Dreamer_01·2021년 1월 30일
0

알고리즘 풀이

목록 보기
33/34

문제링크: https://www.acmicpc.net/problem/2839

처음에는 모든 경우를 나누려고 했다..

3으로 나누어 떨어지는 경우, 5로 나누어 떨어지는 경우, 5와 3이 모두 나누어떨어지는데 또 그것에서 경우의 수를 나누어야했다.

그렇게 접근하니 너무 경우의 수가 많았고, 관련 식을 적어보니 더 쉽게 접근할 수 있었다.

x3 + y5 = n

여기에 for문으로 해서 x값과 y값을 계속 증가시켜주었을때, n의 값이 나오는 경우가 정답이었다.

n = int(input())
l=[]
for x in range(n//3 +1):
    for y in range(n//5 +1):
        if n == x*3 + y*5:
            l.append(x+y)
if len(l)==0:
    print(-1)
else:
    print(min(l))

0개의 댓글

관련 채용 정보