ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [BOJ] 랭킹전대기열
    알고리즘 2023. 10. 21. 21:32
    import java.util.*;
    import java.lang.*;
    import java.io.*;
    
    class Main{
        public static void main(String[] args) throws Exception {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            List<Room> roomList = new ArrayList<>();
    
            String[] str = br.readLine().split(" ");
            int p = Integer.parseInt(str[0]);
            int m = Integer.parseInt(str[1]);
    
            for(int i = 0; i < p; i++) {
                str = br.readLine().split(" ");
                int level = Integer.parseInt(str[0]);
                String nick = str[1];
                boolean flag = true;
                for(Room room : roomList) {
                    if (!room.isFull(m)) {
                        if (Math.abs(level - room.limit) <= 10) {
                            Human human = new Human(level, nick);
                            room.list.add(human);
                            flag = false;
                            break;
                        }
                    }
                }
    
                if (flag) {
                    Room room = new Room(level);
                    Human human = new Human(level, nick);
                    room.list.add(human);
                    roomList.add(room);
                }
            }
    
            for(Room room : roomList) {
                if (room.isFull(m)) {
                    System.out.println("Started!");
                } else {
                    System.out.println("Waiting!");
                }
    
                Collections.sort(room.list, new Comparator<Human>() {
                    public int compare(Human h1, Human h2) {
                        return h1.name.compareTo(h2.name);
                    }
                });
    
                for(Human human : room.list) {
                    System.out.println(human.level + " " + human.name);
                }
            }
    
    
        }
    
        static class Human {
            int level;
            String name;
    
            public Human(int level, String name) {
                this.level = level;
                this.name = name;
            }
        }
    
        static class Room {
            int limit;
            List<Human> list = new ArrayList<>();
    
            public Room(int limit) {
                this.limit = limit;
            }
    
            public boolean isFull(int m) {
                return list.size() == m;
            }
        }
    }
    728x90

    '알고리즘' 카테고리의 다른 글

    [BOJ] 기상캐스터  (0) 2023.10.21
    [BOJ] 내 선물을 받아줘2  (2) 2023.10.21
    [BOJ] 마니또  (1) 2023.10.19
    [BOJ] 여행가자  (0) 2023.10.13
    [BOJ] 집합의 표현  (0) 2023.10.13

    댓글

Designed by Tistory.