본문 바로가기

백준/Hash & Tree

백준 18294 자바

반응형

백준 HashMap 문제입니다.

영어로 되어있지만 그렇게 어렵진 않고 해석해보면

1. N만큼 입력 받기

2. 가장 많이 나온 동물 이름을 출력하기 만약 가장 많이 나온 동물이 2마리 이상이면 NONE 출력하기 입니다.

 

HashMap에 넣는 건 그렇다 쳐도 출력을 어떻게 하느냐가 좀 걸렸는데 N의 반을 넘어야 한 마리가 출력이 되기 때문에 마지막에 삼항연산자를 통해 출력을 했습니다.

import java.io.*;
import java.util.*;
public class unknown {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

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

        HashMap<String,Integer> hashMap = new HashMap<>();

        int max = 0;
        String result = "";
        for (int i = 0; i < N; i++) {
            String animal = br.readLine();

            if(!hashMap.containsKey(animal)) {
                hashMap.put(animal,1);
            } else {
                hashMap.put(animal,hashMap.get(animal)+1);
            }

            if(hashMap.get(animal) > max) {
                max = hashMap.get(animal);
                result = animal;
            }
        }
        System.out.println(max > N / 2 ? result : "NONE");
    }
}
반응형

'백준 > Hash & Tree' 카테고리의 다른 글

백준 22233 자바  (0) 2022.09.01
백준 7785 자바  (0) 2022.08.25
백준 20291 자바  (0) 2022.08.24
백준 10867 자바  (0) 2022.08.23
백준 25192 자바  (0) 2022.08.23