알고리즘

[백준, 자바, 1159번] 농구 경기

hminor 2023. 12. 13. 11:40

풀이

 

  • 입력값의 첫 글자에 대한 key 값이 map에 있다면 해당 key값의 value를 ++ 해주며
  • 그 값이 5가 되었을 경우엔 state 변경과 li에 추가
  • key가 없다면 추가 후 1로 초기화
  • 이후 state가 true의 경우 li를 정렬 후 출력
  • 없다면 의도하는 문구 출력

 

import java.io.*;
import java.util.*;

public class 농구경기 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Map<String, Integer> map = new HashMap<>();
        int n = Integer.parseInt(br.readLine());
        Boolean state = false;
        ArrayList<String> li = new ArrayList<>();

        for (int i = 0; i < n; i++) {
            String name = String.valueOf(br.readLine().charAt(0));
            if (map.containsKey(name)) {
                map.put(name, map.get(name)+1);
                if (map.get(name) == 5) {
                    state = true;
                    li.add(name);
                }
            } else {
                map.put(name, 1);
            }
        }

        if (state) {
            Collections.sort(li);
            for (int i = 0; i < li.size(); i++) {
                System.out.print(li.get(i));
            }
        } else {
            System.out.println("PREDAJA");
        }
    }
}