※ 백준 (Baekjoon)/[Java] 문제 풀이 ( Solve the problems)
[실버 4] 2839. 설탕 배달 (Java)
J 크
2023. 8. 6. 22:54
728x90
반응형
https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
달달 배달
※ 문제를 요약하면 아래와 같습니다.
▶ 상근 씨가 N 킬로그램의 설탕을 배달
▶ 봉지는 3kg, 5kg 두가지의 종류가 존재
▶ 상근씨는 최대한 적은 봉지를 사용하고 싶음
▶ 입력으로 설탕 N kg의 값이 주어짐
▶ 최소로 사용한 봉지 수 출력, 정확하게 N kg을 만들 수 없다면 -1 출력
◈ Input - 1
18
◈ Output - 1 ( 3 + 5 + 5 + 5 )
4
◈ Input - 2
4
◈ Output - 2 ( 3 or 5로 구성할 수 없음 )
-1
◎ 코드 작성 전, 아래와 같이 솔루션을 정리하였습니다.
▶ 18 = 3 + 5 + 5 + 5,
11 = 3 + 3 + 5,
29 = 3 + 3 + 3 + 5 + 5 + 5 + 5
▶ 위의 특성에 따라 N이 5로 나누어 떨어질 때 까지 3씩 감소
▶ 위의 조건을 반복하다가 0보다 작아질 경우는 -1 반환
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader bReader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(bReader.readLine());
int nCount =0;
while(N > 0) {
if(N % 5 == 0) {
System.out.println(nCount + N / 5);
return;
}
N -=3;
nCount++;
}
if(N < 0)
System.out.println(-1);
else
System.out.println(nCount);
}
}
읽어주셔서 감사합니다!
Good Luck! (피드백 고맙습니다)