백준's 단계별 풀이

Stage_8 (기본수학1) 2839번 설탕 배달

푸른잎 뱅갈고무나무 2021. 3. 18. 11:39

 

 

문제출처 : www.acmicpc.net/problem/2839

 

2839번: 설탕 배달

상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그

www.acmicpc.net

 

# 설탕 3kg / 5kg 단위로 있음.

# N = 총 배달 kg

 

# 5n + 3m = N 배달 가능 (0 =< m,n 정수)

# n + m 의 최소값을 구하는 문제

# m = (N - 5n) / 3 ; 위의 두식을 이용해 m에 대해 정리한 값

 

# x가 최소값이려면 n의 값이 최대 따라서  n = N // 5 부터 검증

 

N = int(input())

 

m = 0

n = 0

sum_mn = -1 #횟수의 합이 기본값이 -1부터 시작

 

for n in range(N//5,0-1,-1): #5kg 포대 개수가 최대가 될 수 있는 N//5 부터 역순으로 시작

  m = (N - 5*n) / 3 #m에 대해 정리한 식에 대입하여 m값 산출

  if m % 1 == 0: #산출한 값이 정수이면

    sum_mn = m + n

    break

 

print(int(sum_mn))

 

 

######Range 함수의 역순은 Range(10, 0, -1)와 같이 사용한다. Range(10, 0)의 형식은 사용할 수 없음.오름차순과 마찬가지로 Range(10, 0, -1)의 첫 값은 10 마지막 값은 1이된다.

 

몫을 나타내는 기호는 //나머지는 % 이다. 헷갈리지 말자