백준 Report Card Time

KIMYEONGJUN·2025년 1월 11일
0
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개의 댓글

관련 채용 정보