https://www.acmicpc.net/problem/2839
2839번: 설탕 배달
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그
www.acmicpc.net
백준 2838번 설탕 배달 문제 링크입니다.
핵심
5와 3의 배수를 조합해서 구하는 문제인데, 5의 배수로 나누어질 경우가 가장 봉지수가 적다.
정답 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int count = 0;
while(true) {
if(num%5 ==0) {
System.out.println(num/5+count);
break;
}
else if(num<0) {
System.out.println(-1);
break;
}
num=num-3;
count++;
}
}
}
해설
우선 num을 통해 우리가 배달해야 하는 설탕의 무게를 받는다.
가장 적은 봉지의 갯수로 가져가는 것은 5의 배수로 무게를 받았을 때이다.
따라서 5로 나누어지는지 확인한다.
안 나누어진다면, 받은 무게에서 3kg을 뺀 다음 카운트를 올리고, 다시 비교한다.
ex) 18 -> 15가 되어 5로 나누어짐
이것을 계속 반복하면, num값은 0 또는 음수가 된다.
0이 된다는 것은 3으로 나누어 떨어졌다는 것이고,
음수가 된 것은 5와 3 둘 다 조합하여도 나누어 떨어지지 않는다는 뜻이다.
개선점이나 오류가 있다면, 댓글로 알려주시면 감사하겠습니다.
'PS > 알고리즘 문제풀이' 카테고리의 다른 글
[백준]2108번 통계학(java) (1) | 2022.07.04 |
---|---|
[백준]2581번 소수(java) (0) | 2022.07.04 |
[백준]10757번 큰수A+B(java) (0) | 2022.07.04 |
[백준]4673번 셀프넘버(java) (0) | 2022.07.04 |
[백준] 1316번 그룹단어 체커(java) (0) | 2022.07.04 |