[BaekJoon] 5543번 - 상근날드 (java)
1. 문제
👉 문제 바로가기
- 조건
시간 제한 | 메모리 제한 |
---|---|
1초 | 128MB |
- 문제
상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.
햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.
햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.
- 입력
입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다.
- 출력
첫째 줄에 가장 싼 세트 메뉴의 가격을 출력한다.
- 예제
입력 | 출력 |
---|---|
800 700 900 198 330 |
848 |
1999 1999 100 189 100 |
150 |
2. 풀이
- 알고리즘
for 반복문
을 사용해 메뉴 가격을 5번 입력받는다.
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문 작성;
}
2개의 입력방식을 사용해서 결과를 출력한다.
- Scanner 클래스
- BufferedReader 클래스
2-1. Scanner 클래스
Math 클래스의 min()
을 사용해 최솟값을 구한다.
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int hamMin = 2001;
int bevMin = 2001;
for(int i=1;i<=5;i++){
int price = sc.nextInt();
if(i <= 3){ // 햄버거
hamMin = Math.min(hamMin,price);
}else{ //음료
bevMin = Math.min(bevMin,price);
}
}
System.out.println(hamMin + bevMin - 50);
}
}
위와같이 객체를 생성할 때, Scanner(System.in) 에서
System.in
은 입력한 값을Byte 단위
로 읽는 것을 뜻한다.
int형 데이터를 입력받기 위해
nextInt()
메서드를 사용한다.
Math 클래스의 min()
를 사용해 두 값 중최솟값
을 구한다.
[여기서 잠깐!]
2-2. BufferedReader 클래스 사용
if 조건문
을 사용해 최솟값을 구한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int hamMin = 2001;
int bevMin = 2001;
for(int i=1;i<=5;i++){
int price = Integer.parseInt(br.readLine());
if(i <= 3){ // 햄버거
if(price < hamMin){
hamMin = price;
}
}else{ //음료
if(price < bevMin){
bevMin = price;
}
}
}
System.out.println(hamMin + bevMin - 50);
}
}
readLine()
메서드를 사용해 입력받은 값을 한 줄 통째로 읽어 String 으로 반환한다.
Integer.parseInt()
을 사용해 String형을int형으로 변환
시켜준다.
[여기서 잠깐!]
BufferedReader 클래스
에 대해 더 알아보고 싶으면 여기를 클릭하면 된다.3. Scanner VS BufferedReader 성능 비교
입력의 경우 확실히 Scanner 보다는 BufferedReader 가 빠른 것을 볼 수 있다.
관련 페이지
Leave a comment