Java/Java 알고리즘
백준 17284번 Vending Machine JAVA 구현해보기
kimc
2021. 12. 15. 23:29
```
백준 17284번 Vending Machine JAVA 구현해보기
```

이번 글을 통해 배워갈 내용
- 백준 17284번 풀이
https://www.acmicpc.net/problem/17284
17284번: Vending Machine
첫째 줄에 정웅이가 누른 버튼의 번호가 공백으로 사이에 두고 주어진다. 정웅이는 버튼을 한 번 이상 눌렀다.
www.acmicpc.net
백준 17284번 자판기는
난이도 브론즈 등급의 쉬운 문제로서
한 줄에 공백을 가지고 여러 숫자를 받을 때
1이면 500을 더하고
2면 800을 더하고
3이면 1000을 더해서
5000원에서 더한 숫자를 빼주면 됩니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
자바 15 버전을 가지고
스트림을 돌려서
입력을 배열로 받고
스트림과 스위치를 돌려서
내부에 값에 따라서 500 800 1000을 더해준 다음
5000에서 빼고 출력해주었습니다.
자바 12 버전 미만에서는 화살표 함수 스위치가 지원이 안되기 때문에
주의하시고 진행해주시면 됩니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력을 배열로 받는다.
int[] array = Arrays.stream(br.readLine().split("\\s")).mapToInt(Integer::parseInt).toArray();
// 1이면 500, 2면 800 3이면 1000을 더해주고
final int ans = Arrays.stream(array)
.reduce(0, (subTotal, elem) -> subTotal + switch (elem) {
case 1 -> 500;
case 2 -> 800;
default -> 1000;
});
// 5000 - 합을 출력력
System.out.print(5000 - ans);
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90