(풀이)
import java.util.*;
class Main {
public ArrayList<Integer> solution(int n, int k, int[] arr){
ArrayList<Integer> answer = new ArrayList<>();
HashMap<Integer, Integer> HM = new HashMap<>();
for(int i=0; i<k-1; i++){
HM.put(arr[i], HM.getOrDefault(arr[i], 0)+1);
}
int lt=0;
for(int rt=k-1; rt<n; rt++){
HM.put(arr[rt], HM.getOrDefault(arr[rt], 0)+1);
answer.add(HM.size());
HM.put(arr[lt], HM.get(arr[lt])-1);
if(HM.get(arr[lt])==0) HM.remove(arr[lt]);
lt++;
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n=kb.nextInt();
int k=kb.nextInt();
int[] arr=new int[n];
for(int i=0; i<n; i++){
arr[i]=kb.nextInt();
}
for(int x : T.solution(n, k, arr)) System.out.print(x+" ");
}
}
'취업준비 - 코테 , 면접 > 알고리즘(코테) 공부' 카테고리의 다른 글
알고리즘입문(Java) - Stack,Queue 1.올바른괄호 (0) | 2023.03.20 |
---|---|
알고리즘입문(Java) - HashMap,TreeSet 5. k번째 큰 수 (0) | 2023.03.20 |
알고리즘입문(Java) - HashMap,TreeSet 2.아나그램(HashMap) (0) | 2023.03.19 |
알고리즘입문(Java) - HashMap,TreeSet 1.학급회장 (0) | 2023.03.17 |
알고리즘입문(Java) - [효율성 : O(n^2)-->O(n)] 6.최대 길이 연속부분수열 (0) | 2023.03.14 |