반응형
상근이가 총 몇봉지를 배달하는지 구하는 문제이다. 봉지는 5kg 3kg 두 종류가 있다.
n킬로그랩을 입력했을 때 5, 3kg 두 봉지로 최대한 적은 봉지로 배달할 수 있게 하면 된다.
4kg 나 7kg 마냥 정확하게 5, 3kg 로 조합이 안되는 값은 -1을 출력한다.
그러면 바로 코드~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.Scanner;
//baekjoon_2839_설탕배달
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int cnt=0;
while(true) {
if(n%5 == 0) {
System.out.println(n/5 + cnt);
break;
}
else if(n<0) {
System.out.println(-1);
break;
}
n = n-3;
cnt++;
}
}
}
|
cs |
line9 : 몇 kg인지 n값을 입력한다.
line10 : 몇 봉지일지 개수를 세는 변수 cnt를 선언.
line11 : while문으로 n kg를 최대한 적은 봉지로 표현할때 까지 반복한다.
line12 : n이 5로 나눠 떨어지는게 가장 적은 봉지로 배달할 수 있다.
n/5로 나눠 몫에다 cnt(현재 봉지의 수, 처음들어올 때는 0이다.)를 더해서 출력하고 프로그램을 종료한다.
line16 : n이 0보다 작으면 5, 3 조합으로 표현할 수 없는 수이므로 -1을 출력하고 종료시킨다.
line20, 21 : 여기에 오면 5로 나눠떨어지지 않는 수 이므로 우선 n에서 3kg를 빼서 3kg봉지를 하나 든다는 표현으로 cnt값을 1 증가시킨다.
n이 5로 안나눠지더라도 3씩 계속 빼서 한 봉지씩 들고 n이 0이 되었을 때는 5로 나눠도 몫0 나머지 0으로 나눠 떨어지므로 break문이 걸려서 현재 cnt값을 출력하여 답을 도출할 수 있다.
뭐 나름 간단한 문제인듯.
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 1011번 JAVA Fly me to the Alpha Centauri 수학[1] (0) | 2021.04.22 |
---|---|
백준 10757번 java 큰 수 A + B (수학1) (0) | 2021.01.07 |
백준 2775번 java 부녀회장이 될테야~~! <수학1> (2) | 2020.12.23 |
백준 10250 java ACM 호텔 [수학1] (0) | 2020.12.07 |
백준 2869번 java 달팽이는 올라가고 싶다 (수학1) (0) | 2020.12.01 |
댓글