728x90
반응형
슬라이딩 윈도우, 투포인트 알고리즘 등이 콜라보 된 멋진 작품이다.
오늘 배운 것
1. 문제 풀이
. 하나씩 올라가고, 하나씩 빼주는 방식으로 진행된다.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int k = kb.nextInt();
int [] arr = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = kb.nextInt();
}
solution(k,arr);
}
private static void solution(int k, int[] arr) {
int lt = 0;
ArrayList<Integer> answer = new ArrayList<>();
HashMap<Integer,Integer> hashMap = new HashMap<>();
for (int i = 0; i < k - 1; i++) {
hashMap.put(arr[i],hashMap.getOrDefault(arr[i],0)+1);
}
for (int i = k - 1; i < arr.length; i++) {
hashMap.put(arr[i],hashMap.getOrDefault(arr[i],0)+1);
answer.add(hashMap.size());
hashMap.put(arr[lt],hashMap.getOrDefault(arr[lt],0)-1);
if (hashMap.get(arr[lt]) == 0) {
hashMap.remove(arr[lt]);
}
lt++;
}
for (int i = 0; i < answer.size(); i++) {
System.out.print(answer.get(i)+" ");
}
}
}
728x90
반응형
'알고리즘 > 해시' 카테고리의 다른 글
[알고리즘] K번째 큰 수 with Java, set (0) | 2022.03.16 |
---|---|
[알고리즘] 모든 아나그램 찾기 with Java (0) | 2022.03.16 |
[알고리즘] 아나그램 with Java, containsKey(c) (0) | 2022.03.15 |
[알고리즘] 학급 회장 with Java, getOrDefault (0) | 2022.03.14 |
[HackerRank] Pairs (PYTHON) (0) | 2021.10.29 |