Closed honeySleepr closed 2 years ago
target = [a,l,l]이면 map = [{a,1}, {l,2}] 가 된다
public class P0404 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] arr = br.readLine().split(""); String[] target = br.readLine().split(""); HashMap<String, Integer> targetMap = new HashMap<>(); /* target = [a,l,l]이면 targetMap = [{a,1}, {l,2}] 가 된다 */ for (int i = 0; i < target.length; i++) { targetMap.put(target[i], targetMap.getOrDefault(target[i], 0) + 1); } HashMap<String, Integer> map = new HashMap<>(); int l = 0; int answer = 0; for (int r = 0; r < arr.length; r++) { map.put(arr[r], map.getOrDefault(arr[r], 0) + 1); if (r - l + 1 > target.length) { if (map.get(arr[l]) > 1) { map.replace(arr[l], map.get(arr[l]) - 1); } else { map.remove(arr[l]); } l++; } if (targetMap.equals(map)) { answer++; } } System.out.println(answer); } }
📌 문제
⭐️ 아이디어
🤔 고민한 내용
💪 새롭게 배운 내용
🆘 이해가 어려운 내용
❌ 해결하지 못한 이유
✅ 본인 풀이
참고한 자료