백준 점수 집계

KIMYEONGJUN·2025년 3월 23일
0
post-thumbnail

문제

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

입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다.
각 테스트 케이스는 한 줄에 다섯 심판이 준 점수 다섯 개의 정수 Ni(1 ≤ Ni ≤ 10, i = 1, 2, ..., 5)가 하나의 공백을 사이에 두고 주어진다.

각 테스트 케이스에 대해서 총점을 한 줄씩 출력한다. 만일 점수 조정을 거쳐서 다시 점수를 매기려고 하는 경우에는 총점 대신 KIN을 출력한다.

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

입력 처리: BufferedReader를 사용하여 입력을 받는다.
첫 줄에서 테스트 케이스의 개수를 읽고, 각 테스트 케이스에 대해 점수를 읽는다.
점수 정렬: Arrays.sort()를 사용하여 점수를 오름차순으로 정렬한다.
이 후, 최고점과 최저점을 제외한 나머지 3명의 점수를 합산한다.
점수 조정 여부 확인: 최고점과 최저점의 차이가 4 이상인 경우 "KIN"을 출력하고, 그렇지 않은 경우는 합산한 점수를 출력한다.
결과 출력: StringBuilder를 사용하여 모든 결과를 한 번에 출력한다.

코드로 구현

package baekjoon.baekjoon_27;

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

// 백준 9076번 문제
public class Main969 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int T = Integer.parseInt(br.readLine());

        for(int t = 0; t < T; t++) {
            String[] input = br.readLine().split(" ");
            int[] scores = new int[5];

            for(int i = 0; i < 5; i++) {
                scores[i] = Integer.parseInt(input[i]);
            }

            Arrays.sort(scores);

            // 최고점과 최저점을 제외한 점수들
            int sum = scores[1] + scores[2] + scores[3];
            int maxScore = Math.max(scores[1], Math.max(scores[2], scores[3]));
            int minScore = Math.min(scores[1], Math.min(scores[2], scores[3]));

            // 점수 조정 여부 확인
            if(maxScore - minScore >= 4) {
                sb.append("KIN\n");
            } else {
                sb.append(sum).append("\n");
            }
        }

        System.out.print(sb.toString());
        br.close();
    }
}

마무리

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

profile
Junior backend developer

0개의 댓글

관련 채용 정보