[백준] 9498번 : 시험 성적 - JAVA [자바]
https://www.acmicpc.net/problem/9498
-
문제
문제가 아직까지는 쉬운듯 하다.
- 2가지 입력방법을 이용하여 풀이한다.
Scanner 로 입력받아 연산하는 방법과 BufferedReader 로 입력받아 연산하는 방법, 두 가지 방법을 통해 풀이해보고자 한다.
위 방법은 앞서 포스팅에서도 언급했으니 만약 쓰는 방법을 모른다면 아래 링크를 통해 읽어보는 것을 추천한다.
- 풀이
- 방법 1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
in.close();
if(A>=90) System.out.println("A");
else if(A>=80) System.out.println("B");
else if (A>=70) System.out.println("C");
else if(A>=60) System.out.println("D");
else System.out.println("F");
}
}
가장 기초적인 입력방법이다.
다만.. 줄이 너무 길다 싶으면 삼항연산자를 중첩하여 쓸 수도 있다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int A = in.nextInt();
in.close();
System.out.print((A>=90)?"A": (A>=80)? "B": (A>=70)? "C": (A>=60)? "D": "F");
}
}
코드를 위와같이 가독성을 높이면서 간단하게 만들 수 있다.
- 방법 2
BufferedReader 을 쓰는 방식이다.
readLine() 을 통해 입력 받아 연산하는 방법을 알려줄 것이다.
참고로 BufferedReader 은 String 타입으로 입력되기 때문에 반드시 Integer.parseInt()로 int 형으로 변환시켜준다.
// 방법 2-1
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 A = Integer.parseInt(br.readLine());
if(A>=90) System.out.println("A");
else if(A>=80) System.out.println("B");
else if (A>=70) System.out.println("C");
else if(A>=60) System.out.println("D");
else System.out.println("F");
}
}
물론 삼항연산자로 바꿀 수 도 있다.
// 방법 2-2
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 A = Integer.parseInt(br.readLine());
System.out.print((A>=90)?"A": (A>=80)? "B": (A>=70)? "C": (A>=60)? "D": "F");
}
}
- 성능 차이
위에서 부터 순서대로
채점 번호 : 17661094 - BufferedReader 사용
채점 번호 : 17661075 - Scanner 사용
시간을 보면 BufferedReader 와 Scanner 의 성능 차이가 확연하게 나는 것을 볼 수가 있다.
- 정리
조건문중 if 조건문의 경우 삼항연산자와 if-else 문 두 가지 선택을 할 수 있다.
성능상에 차이는 없기에 사용자의 편의에 따라 가독성이 더 좋은 것을 선택하여 쓸 수 있으니 익혀두면 유용할 것이다.
'JAVA - 백준 [BAEK JOON] > 조건문' 카테고리의 다른 글
[백준] 2525번 : 오븐 시계 - JAVA [자바] (18) | 2022.07.22 |
---|---|
[백준] 14681번 : 사분면 고르기 - JAVA [자바] (2) | 2020.03.17 |
[백준] 2884번 : 알람 시계 - JAVA [자바] (24) | 2020.02.14 |
[백준] 2753번 : 윤년 - JAVA [자바] (19) | 2020.02.13 |
[백준] 1330번 : 두 수 비교하기 - JAVA [자바] (2) | 2020.02.13 |