-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
테스트 케이스 5번 실패
22.05.05 23:33 작성 조회수 142
0
안녕하세요 강사님,
강의 잘 듣고 있습니다.
다름이 아니라 문제 해결하는데 테스트를 통과하지 못해서 문의드리고 싶습니다.
5번 테스트 결과가 180으로 나오는데
제 코드에서는 0으로 나오게 됩니다.
입력값이 너무 크기에 디버깅이 힘들기도 하고 강의 보면서 잘못된 부분을 찾아보려고 했으나, 감이 잘 안오기에 이렇게 문의 드립니다... ㅠㅜ
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Pr04_my04 {
private int solution(String str, String compare) {
int answer = 0;
char[] strArr = str.toCharArray();
char[] compareArr = compare.toCharArray();
int cnt = 0;
Map<Character, Integer> compareMap = new HashMap();
for(char x : compareArr){
compareMap.put(x, compareMap.getOrDefault(x, 0)+1);
}
Map<Character, Integer> strMap = new HashMap();
for(int i = 0; i < compare.length(); i++ ){
strMap.put(strArr[i], strMap.getOrDefault(strArr[i], 0)+1);
}
if(compareMap.equals(strMap)){
answer ++;
}
int head = compareMap.size(), tail = 0;
while (head < strArr.length){
strMap.put(strArr[head], strMap.getOrDefault(strArr[head], 0)+1);
strMap.put(strArr[tail], strMap.get(strArr[tail])-1);
if(strMap.get(strArr[tail]) == 0){
strMap.remove(strArr[tail]);
}
if(compareMap.equals(strMap)){
answer ++;
}
head++;
tail++;
}
return answer;
}
public static void main(String[] args) {
Pr04_my04 pr = new Pr04_my04();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
String compare = sc.nextLine();
System.out.print(pr.solution(str, compare));
}
}
답변을 작성해보세요.
답변 0