• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

테스트 케이스 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

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!