Java Dequeue

윤지현·2025년 5월 12일
0

HackerRank[Java]

목록 보기
57/57
  • 문제
  • 정답
import java.util.*;

public class test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Deque<Integer> deque = new ArrayDeque<>();
        Map<Integer, Integer> map = new HashMap<>();
        
        int n = in.nextInt();
        int m = in.nextInt();
        int maxUnique = 0;

        for (int i = 0; i < n; i++) {
            int num = in.nextInt();
            deque.addLast(num);

            int count = 0;
            if (map.containsKey(num)) {
                count = map.get(num);
            }
            map.put(num, count + 1);

            if (deque.size() > m) {
                int removed = deque.removeFirst();
                int removedCount = map.get(removed);
                if (removedCount == 1) {
                    map.remove(removed);
                } else {
                    map.put(removed, removedCount - 1);
                }
            }

            if (deque.size() == m) {
                maxUnique = Math.max(maxUnique, map.size());
            }
        }

        System.out.println(maxUnique);
    }
}
  • 결과
profile
첫 시작

0개의 댓글