Information Security Study
[백준] 2839: 설탕 배달 본문
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int count = 0;
while (N > 0) {
if (N % 5 == 0) {
count += N / 5;
N = 0;
} else {
N -= 3;
count++;
}
}
if (N < 0) {
System.out.println(-1); // 정확하게 N킬로그램을 만들 수 없는 경우
} else {
System.out.println(count); // 상근이가 배달하는 봉지의 최소 개수 출력
}
}
}
입력값이 5로 나눠지면 그 몫이 배달 횟수가 되고
그렇지 않다면 3씩 빼면서 5로 나눠지는지 확인한다.
이때 N에서 3을 감소시키면서 배달 횟수는 한 번 증가한다.
입력값이 4 같이 계산 불가능한 경우
0보다 크니 반복문에 들어왔지만 5로 나눠지지 않아
반복문을 빠져나왔을 때는 N에 -2가 들어있을 것이다.
따라서 N이 0보다 작아졌기 때문에 -1을 출력한다.
그리디 알고리즘
: 현재 상황에서 최적의 방안을 고르는 알고리즘
'Programming > JAVA' 카테고리의 다른 글
[백준] 1676: 팩토리얼 0의 개수 (0) | 2024.02.13 |
---|---|
[백준] 12789: 도키도키 간식드리미 (0) | 2024.02.07 |
[백준] 28278: 스택 2 (2) | 2024.02.06 |
[백준] 1935: 후위 표기식2 (0) | 2024.02.05 |
[백준] 17413: 단어 뒤집기 2 (0) | 2024.02.02 |