작성
·
194
0
해당 문제를 다음과 같이 풀었는데 RunTime Error가
발생하는 이유가 뭘까요 ?
혹시 시간초과가 되는것일까요 ?
import java.util.HashMap;
import java.util.Scanner;
public class No3 {
public static void solution(int n, int m, int[] arr) {
HashMap<Integer, Integer> map = new HashMap<>();
int[] answer = new int[m];
int lt = 0;
for (int i = 0; i < m; i++) {
map.put(arr[i], map.getOrDefault(arr[i], 0) + 1);
}
answer[0] = map.size();
for (int rt = m; rt < n; rt++) {
map.put(arr[lt], map.getOrDefault(arr[lt], 0) - 1);
map.put(arr[rt], map.getOrDefault(arr[rt], 0) + 1);
if (map.get(arr[lt]) == 0)
map.remove(arr[lt]);
answer[++lt] = map.size();
}
for (int x : answer)
System.out.print(x + " ");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = sc.nextInt();
solution(n, m, arr);
}
}