반응형
설탕은 3kg봉지 5kg봉지 가 있는데 n(입력)kg를 배달해야 하고 가장 적은 봉지를 들고가야 하는 알고리즘이다.
뭐 간단하게 5kg로 최대한 들고 가고 남은 것을 3kg로 들고가면 된다고 생각이 된다.
뭐 나눠 떨어졌을 때 말이지만 대충 거스름돈 비슷하다고 생각하면 될 거 같다.
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) {
//사탕은 3키로와 5키로
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 |
line 8, 9 : 몇 키로를 배달할 지 n값을 입력하고 몇 봉지가 나올지 출력할 cnt를 선언한다.
line 11 : while문으로 계속 반복시키고 조건이 달성되면 break문으로 빠져나가게 한다.
line 12 : n값이 5로 나눠 떨어지면 그것이 가장 적게 들고 갈 수 있다. 예를 들어 18kg로 가정해 보자면 5로 나눠 떨어지지 않기 때문에 if문을 안들어간다.
line 16 : else if()문은 n이 4kg 처럼 3과 5로 나눠 떨어지지 않는 경우에 들어가게 된다. 이럴 경우 -1을 출력한다.
line 20 : 18kg 로 가정했을 때 if문을 안들어가서 여기로 온다. n에 3kg 를 빼고 cnt를 1올려준다. 3kg 봉지를 하나 든 셈이다.
여기서 다시 12행에 if문으로 가서 이제 15kg가 되어 5로 나눠 떨어지므로 n/5의 몫인 3에 아까 3kg봉지 +1(cnt) 를 더해서 출력해주면 된다.
so easy
반응형
'프로그래밍 > 백준 알고리즘 코드' 카테고리의 다른 글
백준 1193번 java 자바 분수찾기 [수학1] (2) | 2020.11.28 |
---|---|
백준 2292번 java 자바 벌집 [수학1] (0) | 2020.10.25 |
백준 1712번 java 자바 손익분기점 (수학 1) (0) | 2020.10.17 |
백준 1316번 자바 JAVA 그룹 단어 체커 [문자열] (0) | 2020.10.14 |
백준 2941번 자바 java 크로아티아 알파벳 [문자열] (0) | 2020.09.29 |
댓글