인프런 커뮤니티 질문&답변

toqur7000님의 프로필 이미지
toqur7000

작성한 질문수

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

4. 모든 아나그램 찾기(Hash, sliding window : 시간복잡도 O(n))

왜 런타임 에러가 나는지 모르겠습니다.

작성

·

208

0

아무리봐도 선생님께서 짜신 코드하고 다른게 없는거 같은데 왜
런타임 에러가 나는지 모르겠습니다. 가르쳐주세요!
죄송합니다 다시 고쳐서 올립니다!
 
import java.util.HashMap;
import java.util.Scanner;
 
public class Main { public int solution(String str, String str2) {
HashMap<Character, Integer> temp = new HashMap<>();
HashMap<Character, Integer> temp2 = new HashMap<>();
int answer = 0, lt = 0;
int n = str2.length();
for(char x : str2.toCharArray()) temp.put(x, 1);
for(int i = 0; i < n-1; i++) {
temp2.put(str.charAt(i), 1);
}
for(int i = n-1; i < str.length(); i++) {
temp2.put(str.charAt(i), temp2.getOrDefault(str.charAt(i), 0) + 1);
if(temp.equals(temp2)) answer++; temp2.put(str.charAt(lt), temp2.get(str.charAt(lt)) - 1);
if(temp2.get(str.charAt(lt)) == 0) temp2.remove(str.charAt(lt)); lt++;
}
 
return answer;
}
 
public static void main(String[] args) {
// TODO Auto-generated method stub
Main T = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.next();
String str2 = sc.next();
System.out.print(T.solution(str, str2));
}
}

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

코드를 제가 볼 수 있도록 올려주세요.

toqur7000님의 프로필 이미지
toqur7000

작성한 질문수

질문하기