3킬로짜리(x)와 5킬로짜리(y) 설탕의 갯수 최소값을 min이라고 잡고, 팔아야할 설탕 무게(입력값) 을 input이라고 잡았습니다. 그래서 식을 새워 보면
x+y = min 3x+5y = input
으로 둘 수 있습니다. 그럼 이 두 식을 풀어가면, min = (input -2y)/3 이라는 식이 나옵니다. (y에 관한 식으로 바꿨습니다)
따라서 input 값을 설정해주고, y의 갯수(5킬로짜리 설탕의 갯수)를 for문으로 0부터 input/2까지 (이유는 min의 값이 0보다 커야 하기 때문에 분자 (input -2y)의 값이 0보다 커야 합니다!)로 설정하고, check값 (input -2y)/3이 min값보다 작고 check값이 y보다 클 때, check 값을 재 설정합니다.
그런데 18을 넣어봐도 답이 맞고 32를 넣어봐도, 5000을 넣어봐도 답이 맞는 것 같아서 질문을 드립니다!
alex19pyj 6년 전
저는 좀 다르게 생각을 해봤습니다.
3킬로짜리(x)와 5킬로짜리(y) 설탕의 갯수 최소값을 min이라고 잡고,
팔아야할 설탕 무게(입력값) 을 input이라고 잡았습니다.
그래서 식을 새워 보면
x+y = min
3x+5y = input
으로 둘 수 있습니다.
그럼 이 두 식을 풀어가면, min = (input -2y)/3 이라는 식이 나옵니다. (y에 관한 식으로 바꿨습니다)
따라서 input 값을 설정해주고,
y의 갯수(5킬로짜리 설탕의 갯수)를 for문으로 0부터 input/2까지 (이유는 min의 값이 0보다 커야 하기 때문에 분자 (input -2y)의 값이 0보다 커야 합니다!)로 설정하고,
check값 (input -2y)/3이 min값보다 작고 check값이 y보다 클 때, check 값을 재 설정합니다.
그런데 18을 넣어봐도 답이 맞고 32를 넣어봐도, 5000을 넣어봐도 답이 맞는 것 같아서 질문을 드립니다!