회고록 블로그

[백준 코테 풀기] 9498번. 시험 성적 본문

4. 기타 공부/코테 준비

[백준 코테 풀기] 9498번. 시험 성적

김간장 2021. 11. 29. 19:25

[문제]

https://www.acmicpc.net/problem/9498

 

9498번: 시험 성적

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

www.acmicpc.net

 

[풀이]

import java.util.Scanner;

class TestScorePrinter {
	private int score;
	
	TestScorePrinter(int score) {
		if((score >= 0) && (score <= 100))
			this.score = score;
	}
	public char convertScoreIntoGrade() {
		switch(score/10) {
		case 10:
		case 9:
			return 'A';
		case 8:
			return 'B';
		case 7:
			return 'C';
		case 6:
			return 'D';
		default:
			return 'F';
		}
	}
	
}

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		TestScorePrinter score = new TestScorePrinter(sc.nextInt());
		System.out.println(score.convertScoreIntoGrade());
		
	}
}

 

if문을 이용하거나, main 메소드만 이용할 수도 있지만 

main 메소드는 실행을 위한 메소드이지 기능(함수)을 하기 위한 메소드가 아니라고 배웠기 때문에 클래스를 하나 생성했다.

 

swtich문 사용을 염두해두고 코드를 작성했기 때문에 조건으로 score/10을 주었다.

score의 범위는 0~100이지만, score/10의 범위는 0~10이기 때문에 더 코드 라인수를 줄일 수 있을 것 같아서..

하지만 그 때문에 CPU가 연산을 더 많이 하게 되는 듯..

 

※ 그런데 풀고 보니까 문제의 카테고리가 'if문'이었다.


코딩테스트를 준비하기 위해서 문제를 푸는 것도 좋지만, 배운 문법을 써먹기 위해 문제를 푸는 것도 좋은 것 같다.

 

개인적으로 Java 문법을 공부하면서 가장 힘든 것 중 하나는 적절한 상황을 생각해내는 것인데

 

문법을 계속 써보고 연습하려면 해당 문법이 사용되는 상황(e.g. 환자정보 입력, 신학기 반 배치 등)이 주어져야 하는데,

그걸 혼자 생각해내다보니 아는 범위에서만 상황을 제시할 수 있다는 한계가 있었다.

 

그에 비해 코딩테스트 대비 문제들은 상황이 주어지기 때문에 너무 편하고 문법만 연습하기에는 좋은 것 같다.

그렇다고 문제 풀이가 쉽다는 얘기는 아니다.

 

 

Comments