개발놀이터
4-4. 모든 아나그램 찾기 본문
package HashMap그리고TreeSet4장.모든아나그램찾기4다시4.my;
import java.util.HashMap;
import java.util.Scanner;
public class Main {
/**
* 피드백 할 것 없음 이전 문제와 완벽히 동일
*/
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
String input1 = kb.next();
String input2 = kb.next();
System.out.println(solution(input1, input2));
}
private static int solution(String input1, String input2) {
int answer = 0;
int start= 0, end = input2.length();
HashMap<Character, Integer> map1 = new HashMap<>();
HashMap<Character, Integer> map2 = new HashMap<>();
char[] input1Array = input1.toCharArray();
char[] input2Array = input2.toCharArray();
for (int i = 0; i < input2.length(); i++) {
map1.put(input1Array[i], map1.getOrDefault(input1Array[i], 0) + 1);
}
for (char c : input2Array) {
map2.put(c, map2.getOrDefault(c, 0) + 1);
}
if (map1.equals(map2)) {
answer++;
}
while (end < input1.length()) {
map1.put(input1Array[end], map1.getOrDefault(input1Array[end], 0) + 1);
end++;
map1.put(input1Array[start], map1.get(input1Array[start]) - 1);
if (map1.get(input1Array[start]) == 0) {
map1.remove(input1Array[start]);
}
start++;
if (map1.equals(map2)) {
answer++;
}
}
return answer;
}
}
'기타 > 코딩테스트' 카테고리의 다른 글
4장 주요개념 및 복습 (0) | 2023.02.23 |
---|---|
4-5. K번째로 큰 수 (0) | 2023.02.23 |
4-3. 매출액의 종류 (0) | 2023.02.23 |
4-2. 아나그램 (0) | 2023.02.23 |
4-1. 학급회장 (0) | 2023.02.23 |