https://www.acmicpc.net/problem/2839
백준 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 |