-
[백준/BOJ] 5543번 : 상근날드 (JAVA / 자바)백준 2022. 1. 24. 16:01
안녕하세요~ 코딩하는 코알못 코메인입니다.
https://www.acmicpc.net/problem/5543
- 문제 -
난이도 브론즈 4 문제이다.
자바에서 입력방식은 scanner와 bufferedreader가 있다.
자바를 초반에 접하면 처음에 배우는 입력은 scanner이다. scanner가 bufferedreader보다 편하지만 속도가 느리다.
bufferedreader는 무조건 문자열로 받아오기때문에 정수형이나 실수형 변수에 저장하기 위해서는 입력과 형변환을 해줘야한다.
더 자세한 내용은 아래 글 참고 하면 좋다.
풀이 방법
변수 5개를 다 나열해서 각 값들을 비교해서 최솟값을 구하고 세트 가격을 구할 수 있다.
배열을 햄버거 값과 음료 값이 각자 들어가있는 두개 만들어 최솟값을 빼서 세트 가격을 구할 수 있다.
입력과 동시에 최솟값을 비교. 햄버거 음료 최솟값 두개를 구해서 세트 가격을 구할 수 있다.
필자가 생각한 방법은 이렇게 3가지가 있고 필자는 3번째 방법을 구현해 보려한다.
-풀이-
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)); //최솟값을 저장하기 위한 변수 선언. 값은 최대로 설정할 수 있는 가격인 2000원 int Amin = 2000; int Bmin = 2000; //햄버거 값이 입력될 때마다 최솟값을 갱신 for(int i = 0; i < 3; i++) { int N = Integer.parseInt(br.readLine()); if(N < Amin) { Amin = N; } } //음료 값이 입력될 때마다 최솟값을 갱신 for(int i = 0; i < 2; i++) { int N = Integer.parseInt(br.readLine()); if(N < Bmin) { Bmin = N; } } //두 음식의 최솟값을 더하고 세트 할인 값을 적용 System.out.println(Amin + Bmin - 50); } }
-결과-
아직 코딩 공부가 부족한 필자라 설명과 풀이 방법이 많이 미흡할 수 있다. 코딩 고수들은 보시고 문제점이 있다면 댓글로 말해주시면 감사한 마음으로 참고 수정 하겠다.
'백준' 카테고리의 다른 글
[백준/BOJ] 5893번 : 17배 (JAVA / 자바) (0) 2022.01.24 [백준/BOJ] 5575번 : 타임 카드 (JAVA / 자바) (0) 2022.01.24 [백준/BOJ] 5532번 : 방학 숙제 (JAVA / 자바) (0) 2022.01.24 [백준/BOJ] 4299번 : AFC 윔블던 (JAVA / 자바) (1) 2022.01.24 [백준/BOJ] 3004번 : 체스판 조각 (JAVA / 자바) (0) 2022.01.24