회고록 블로그
[백준 코테 풀기] 9498번. 시험 성적 본문
[문제]
https://www.acmicpc.net/problem/9498
[풀이]
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. 환자정보 입력, 신학기 반 배치 등)이 주어져야 하는데,
그걸 혼자 생각해내다보니 아는 범위에서만 상황을 제시할 수 있다는 한계가 있었다.
그에 비해 코딩테스트 대비 문제들은 상황이 주어지기 때문에 너무 편하고 문법만 연습하기에는 좋은 것 같다.
그렇다고 문제 풀이가 쉽다는 얘기는 아니다.
'4. 기타 공부 > 코테 준비' 카테고리의 다른 글
[백준 코테 풀기] 14681번. 사분면 고르기 (0) | 2021.11.29 |
---|---|
[백준 코테 풀기] 2753번. 윤년 (0) | 2021.11.29 |
[백준 코테 풀기] 1330번. 두 수 비교하기 (0) | 2021.11.29 |
[백준 코테 풀기] 2588번. 곱셈 (0) | 2021.11.27 |
[백준 코테 풀기] 10430번. 나머지 (0) | 2021.11.27 |
Comments