Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준
- SpringBoot
- docker
- 이클립스
- EC2
- Java
- jenkins
- 자바
- 18222
- 날짜일수
- 21278
- 14466
- 2167. 2차원 배열의 합
- 설정
- 소가길을건너간이유6
- dockercompose
- 이산수학
- 별자리 만들기
- 프로그래머스
- 호석이두마리치킨
- documentationpluginsbootstrapper
- Error fetching remote repo 'origin'
- 알고리즘
- CMD
- 2108_통계학
- 투에모스문자열
- Error
- to display the conditions report re-run your application with 'debug' enabled
- Eclipse
- 20055
Archives
- Today
- Total
계단을 오르듯이
[JAVA] 14916. 거스름돈 본문
5원과 2원이 있기 때문에 거스름돈을 최소로 주기 위해 5원을 최대로 사용했다.
2원을 위해 5원을 최대로 사용할 경우 남은 거스름돈이 짝수가 되도록 하였으며,
나머지 거스름돈에서 2원으로 거스름돈을 주지 못할 경우는 2로 나누었을 때 나머지 값이 존재하는 상황이므로 -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
25
26
|
package algo;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class B_14916_거스름돈 {
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(in.readLine());
int five = N / 5; // 5원의 개수
while ((N - (five * 5)) % 2 != 0) { // 2원을 위해 나머지를 짝수를 만든다
if (--five <= 0) { // five가 -1이 되면 아래의 연산에 영향을 주므로 0으로
five = 0;
break;
}
}
int two = 0; // 2원의 개수
if ((N - (five * 5)) % 2 == 0) { // 2원으로 나누어 떨어지면 거스름돈 OK
two = (N - (five * 5)) / 2;
System.out.println(five + two);
} else // 그렇지 않으면 -1
System.out.println(-1);
}
}
|
cs |
'알고리즘 > 백준_JAVA' 카테고리의 다른 글
[JAVA] 18222. 투에 모스 문자열 (0) | 2022.02.01 |
---|---|
[JAVA] 프로그래머스 - 카펫 (0) | 2022.01.31 |
[JAVA] 21278. 호석이 두 마리 치킨 (0) | 2022.01.28 |
[JAVA] 14466. 소가 길을 건너간 이유 6 (0) | 2022.01.27 |
[JAVA] 20055. 컨베이어 벨트 위의 로봇 (0) | 2022.01.27 |