백준 Report Card Time

KIMYEONGJUN·2025년 1월 11일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

The input will begin with a single line containing just a whole number, n, of the number of hobbits in the class, followed by n lines in the form a b, where a is the hobbit’s name (only alphabetical characters) and b is the hobbit’s grade, given as a whole number.
The length of hobbit's name is less than 10.

For each test case, print out a list of every hobbits name and letter grade, each on its own line. There should be no additional white space following test cases.

내가 이 문제를 보고 생각해본 부분

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));: 표준 입력을 읽기 위해 BufferedReader를 사용한다.
int n = Integer.parseInt(br.readLine());: 첫 번째 줄에서 호빗의 수를 읽어와 정수형 변수 n에 저장한다.
StringBuilder sb = new StringBuilder();: 결과를 저장하기 위해 StringBuilder 객체를 생성한다.
반복문 및 성적 처리:
for(int i = 0; i < n; i++): n번 반복하는 루프입니다. 각 호빗의 정보를 처리한다.
String[] input = br.readLine().split(" ");: 각 호빗의 이름과 성적을 읽어와 공백으로 나누어 배열에 저장한다.
String name = input[0];: 호빗의 이름을 name 변수에 저장한다.
int grade = Integer.parseInt(input[1]);: 호빗의 성적을 정수형으로 변환하여 grade 변수에 저장한다.
String letterGrade = "";: 학점을 저장할 변수를 초기화해준다.
성적에 따른 학점 결정:
여러 개의 if-else 문을 사용하여 성적에 따라 적절한 학점을 결정해준다.
결과 저장 및 출력:
각 호빗의 이름과 학점을 StringBuilder에 추가해준다.
StringBuilder에 저장된 결과를 출력해준다.

코드로 구현

package baekjoon.baekjoon_25;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 11367번 문제
public class Main896 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine()); // 호빗의 수 입력
        StringBuilder sb = new StringBuilder();

        for(int i = 0; i < n; i++) {
            String[] input = br.readLine().split(" ");
            String name = input[0];
            int grade = Integer.parseInt(input[1]);
            String letterGrade = "";

            // 성적에 따른 학점 결정
            if(grade >= 97) {
                letterGrade = "A+";
            } else if(grade >= 90) {
                letterGrade = "A";
            } else if(grade >= 87) {
                letterGrade = "B+";
            } else if(grade >= 80) {
                letterGrade = "B";
            } else if(grade >= 77) {
                letterGrade = "C+";
            } else if(grade >= 70) {
                letterGrade = "C";
            } else if(grade >= 67) {
                letterGrade = "D+";
            } else if(grade >= 60) {
                letterGrade = "D";
            } else {
                letterGrade = "F";
            }

            // 결과에 추가
            sb.append(name).append(" ").append(letterGrade).append("\n");
        }

        // 결과 출력
        System.out.print(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글