3번을 토대로 4번을 풀면 쉽게 풀린다
package main4;
import java.util.Map;
import java.util.Scanner;
import java.util.HashMap;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collections;
public class Main4 {
public int solution(String a,String b){
int count = 0;
HashMap<Character, Integer> map = new HashMap<>();
HashMap<Character, Integer> map2 = new HashMap<>();
for(int i = 0; i < b.length(); i ++) {
map.put(b.charAt(i), map.getOrDefault(b.charAt(i), 0) + 1);
}
// a 1 b 1 c 1
for(int i = 0; i < b.length(); i ++) {
map2.put(a.charAt(i), map2.getOrDefault(a.charAt(i), 0) + 1);
}
if(map.equals(map2)) {
count ++;
}
int lt = 0;
for(int rt = b.length(); rt < a.length(); rt ++) {
map2.put(a.charAt(rt),map2.getOrDefault(a.charAt(rt), 0) + 1);
map2.put(a.charAt(lt),map2.get(a.charAt(lt))-1);
if(map2.get(a.charAt(lt)) == 0) {
map2.remove(a.charAt(lt));
}
if(map.equals(map2)) {
count ++;
}
lt++;
}
return count;
};
public static void main(String[] args) {
Main4 main2 = new Main4();
Scanner kb = new Scanner (System.in);
String a = kb.next();
String b = kb.next();
System.out.println( main2.solution(a,b));
}
}