백준 Yangjojang of The Year

KIMYEONGJUN·2025년 2월 26일
post-thumbnail

문제

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

입력의 첫 줄에는 테스트 케이스의 숫자 T가 주어진다.
매 입력의 첫 줄에는 학교의 숫자 정수 N(1 ≤ N ≤ 100)이 주어진다.
이어서 N줄에 걸쳐 학교 이름 S(1 ≤ |S| ≤ 20, S는 공백없는 대소문자 알파벳 문자열)와 해당 학교가 지난 한 해동안 소비한 술의 양 L(0 ≤ L ≤ 10,000,000)이 공백으로 구분되어 정수로 주어진다.
같은 테스트 케이스 안에서 소비한 술의 양이 같은 학교는 없다고 가정한다.

각 테스트 케이스마다 한 줄에 걸쳐 술 소비가 가장 많은 학교의 이름을 출력한다.

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

BufferedReader를 사용하여 입력을 받는다.
각 테스트 케이스마다 학교와 술 소비량을 HashMap에 저장한다.
모든 학교의 소비량을 확인하여 가장 큰 값을 가진 학교를 찾는다.
결과를 StringBuilder에 저장하고, 마지막에 한 번에 출력한다.

코드로 구현

package baekjoon.baekjoon_27;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;

// 백준 11557번 문제
public class Main944 {
    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++) {
            int N = Integer.parseInt(br.readLine()); // 학교 수
            Map<String, Integer> schoolConsumption = new HashMap<>();

            for(int n = 0; n < N; n++) {
                String line = br.readLine();
                String[] parts = line.split(" ");

                String schoolName = parts[0]; // 학교 이름
                int consumption = Integer.parseInt(parts[1]); // 술 소비량
                schoolConsumption.put(schoolName, consumption);
            }

            // 가장 술 소비가 많은 학교 찾기
            String maxSchool = null;
            int maxConsumption = -1;

            for(Map.Entry<String, Integer> entry : schoolConsumption.entrySet()) {
                if(entry.getValue() > maxConsumption) {
                    maxConsumption = entry.getValue();
                    maxSchool = entry.getKey();
                }
            }

            sb.append(maxSchool).append("\n");
        }

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

마무리

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

profile
Junior backend developer

0개의 댓글