백준 - Java

[백준 - 9498] [Java] 시험 성적

SeongJo 2022. 4. 29. 23:18
반응형

 

이 포스팅은 자바 8버전을 기준으로 풀이됐습니다.

 

[ 백준 - 9495 ]

문제

시험 점수를 입력받아 90 ~ 100점A, 80 ~ 89점B, 70 ~ 79점C, 60 ~ 69점D, 나머지 점수 F를 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

시험 성적을 출력한다.

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
public class Main{
    public static void main(String[]args) {
     Scanner sc = new Scanner(System.in);
     int i_num = sc.nextInt();
     if(i_num<=100 && i_num>=90) {
         System.out.print("A");
     }
     else if(i_num<=89 && i_num>=80) {
         System.out.print("B");
     }
     else if(i_num<=79 && i_num>=70) {
         System.out.print("C");
     }
     else if(i_num<=69 && i_num>=60) {
         System.out.print("D");
     }
     else{
         System.out.print("F");
     } 
 }
}
 
 

풀이

지난 1000번과 1001번 코드 포스팅에서는 BufferedReader를 활용하여 풀었는데 이번 포스팅에서는 문제를 읽고 Scanner로 오랜만에 풀어야겠다는 생각이 들었다.

문제에 조건이 있다.

100~90 = A

89~80 = B

79~70 = C

69~60 = D

이후 나머지 낮은 점수는 F이다.

위 코드를 에러 사항을 줄이고 조금 더 완벽하게 동작할 수 있도록 하려면 try~catch에서 IOException을 활용하 예외 사항을 만들어준다.

-> 잘못된 값이 들어오는 경우!

범위에 대해서 더 명확하게 한다.

하지만 위 코드 자체가 엄청난 복잡성을 갖는 문제가 아니기 때문에 통과를 기준으로 문제를 해결했다.

코딩에는 다양한 정답이 존재하기 때문에 본인 스타일에서 최적화해서 문제를 풀 수 있도록 하는 것이 좋을 것 같다.

 

 

 


짧은 포스팅 읽어주셔서 감사드립니다.

오타나 문제에 대해서 의문이 드는 부분은 댓글 부탁드리겠습니다!

다음 포스팅 때 뵙겠습니다!

반응형