[★2][백준9498번]시험 성적 (JAVA)

Date:     Updated:

카테고리:

태그:

[★2][백준9498번]시험 성적 (JAVA)

9498번 문제 ☞ https://www.acmicpc.net/problem/9498

난이도 ☞ [★2]

시험 성적

  • 문제
    • 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
    • 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
    • 시험 성적을 출력한다.

      예제입력 예제출력
      100 A

내가 푼 풀이

이번 문제도 이전 문제와 같이 입력을 받아 조건을 부여하여 조건에 따라 출력되게 하는 방법인데, 이는 if-else 혹은 if-else if-else를 사용하여 구현하는 것이다. 입력받는 방식은 여러가지가 있지만 제일 쉬운 방식으로 구현하였다.

[ 풀이 1 ]

메모리 : 17712KB
시간 : 208ms

Scanner

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);

		int a = s.nextInt();
		s.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");
		}
	}

}

위의 방식처럼 할 수도 있지만, BufferedReader를 사용하여 구현을 할 수도 있으며, 각각 ScannerBufferedReader방식에 삼항 연산자를 사용하여 작성을 할 수도 있다. 우선 BufferedReader방식의 코드 구현이다. 아래 코드 참조.

[ 풀이 2 ]

메모리 : 14176KB
시간 : 124ms

BufferedReader

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");
		}
	}
}

위의 각각 ScannerBufferedReader방식에 삼항 연산자를 사용하여 풀이한 방법이다. 풀이 3은 Scanner에 삼항연산자를 사용한 것이다.

[ 풀이 3 ]

메모리 : 17692KB
시간 : 212ms

Scanner - 삼항연산자

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);

		int a = s.nextInt();

		s.close();

		System.out.println((a >= 90) ? "A" : (a >= 80) ? "B" : (a >= 70) ? "C" : (a >= 60) ? "D" : "F");
	}

}

[ 풀이 4 ]

메모리 : 14220KB
시간 : 124ms

BufferedReader - 삼항연산자

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);

		int a = s.nextInt();

		s.close();

		System.out.println((a >= 90) ? "A" : (a >= 80) ? "B" : (a >= 70) ? "C" : (a >= 60) ? "D" : "F");
	}

}

삼항연산자를 통해 어느 정도 코드를 정리할 수 있으며, 더 다른 응용을 보고 싶으시면 이 바로 전 게시물을 참고 하시면 될 것 같습니다.

BKJN 카테고리 내 다른 글 보러가기

댓글 남기기