작성
·
286
0
package hash;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Scanner;
public class TypeOfSales {
static ArrayList<Integer> solution(int n, int k, int[] arr) {
Collection<Integer> set = new HashSet<>();
Collection<Integer> list = new ArrayList<>();
ArrayList<Integer> result = new ArrayList<>();
int p1 = 1;
for(int i = 0; i < k; i++) {
list.add(arr[i]);
}
set.addAll(list);
result.add(set.size());
while(p1 < n-k+1) {
set.clear();
list.remove(arr[p1-1]);
list.add(arr[p1+k-1]);
set.addAll(list);
result.add(set.size());
p1++;
}
return result;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] arr = new int[n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
for(int x : TypeOfSales.solution(n, k, arr)) {
System.out.print(x + " ");
}
}
}
시간 복잡도는 O(N)이 맞는거같은데 4번 5번 테스트 케이스에서 2초 가까이 뜨네용..