자바 백준 11557번
브론즈 1
https://www.acmicpc.net/problem/11557
문제 보기
분류: 구현, 정렬
문제 풀기
테스트 개수 만큼 for loop을 실행시킨다.
학교의 이름과 술 소비량을 입력받으면서 소비량이 이전에 입력 받은 값보다 큰지 확인을 하고 만약 크다면 그 값과 학교 이름을 저장한다. 모든 학교와 소비량이 입력되면 최대 소비량 데이터를 얻을 수 있다.
최대값 찾기 메서드의 최종 데이터를 AbstractMap을 이용하여 반환 후 출력한다.
코드 보기
import java.util.Scanner;
import java.util.Map;
import java.util.AbstractMap;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 테스트 케이스의 개수 T를 입력받음
int T = sc.nextInt();
for (int t = 0; t < T; t++) {
// 학교의 개수 N을 입력받음
int N = sc.nextInt();
// 최대 술 소비량과 학교 이름을 찾음
Map.Entry<String, Integer> maxAlcoholEntry = findMaxAlcoholConsumption(sc, N);
// 술 소비가 가장 많은 학교 이름 출력
System.out.println(maxAlcoholEntry.getKey());
}
}
// 학교 이름과 술 소비량을 입력받고, 최대 술 소비량과 학교 이름을 반환하는 함수
public static Map.Entry<String, Integer> findMaxAlcoholConsumption(Scanner sc, int N) {
// 최대 술 소비량을 저장할 변수 초기화
int maxAlcoholConsumption = -1;
String maxAlcoholSchool = "";
for (int i = 0; i < N; i++) {
// 학교 이름과 술 소비량을 입력받음
String schoolName = sc.next();
int alcoholConsumption = sc.nextInt();
// 최대 술 소비량인 경우 최대값과 해당 학교 이름을 업데이트
if (alcoholConsumption > maxAlcoholConsumption) {
maxAlcoholConsumption = alcoholConsumption;
maxAlcoholSchool = schoolName;
}
}
// 최대 술 소비량과 학교 이름을 Map.Entry 형태로 반환
return new AbstractMap.SimpleEntry<>(maxAlcoholSchool, maxAlcoholConsumption);
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 15904 - UCPC는 무엇의 약자일까? (0) | 2023.07.21 |
---|---|
[Java] 백준 풀기 11652 - 카드 (0) | 2023.07.20 |
[Java] 백준 풀기 11726 - 2xN 타일링 (0) | 2023.07.18 |
[Java] 백준 풀기 2530 - 인공지능 시계 (0) | 2023.07.17 |
[Java] 백준 풀기 10811 - 바구니 뒤집기 (0) | 2023.07.15 |