강의

멘토링

커뮤니티

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

kym9129님의 프로필 이미지
kym9129

작성한 질문수

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

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

런타임 오류가 왜 나는지 궁금합니다.

작성

·

270

0

강사님이랑 거의 똑같이 코드 작성한 것 같은데 채점사이트에서 계속 런타임 오류가 납니다. IDE에서는 잘 돌아가는데 말이죠 ㅠㅠ

 

import java.util.*;
  
public class Main {
  
  public static int solution2 (String s, String t){
    Map<Character, Integer> amap = new HashMap<>(); // window
    Map<Character, Integer> bmap = new HashMap<>();

    for(int i = 0 ; i < t.length(); i++){
      bmap.put(t.charAt(i), bmap.getOrDefault(t.charAt(i), 0)+1);
    }

    int LEN = t.length()-1;
    for(int i = 0; i < LEN; i++){
      amap.put(t.charAt(i), amap.getOrDefault(t.charAt(i), 0)+1);
    }

    int lt = 0, cnt = 0;
    for(int rt = LEN; rt < s.length(); rt++){
      amap.put(s.charAt(rt), amap.getOrDefault(s.charAt(rt), 0)+1);
      // 판정
      if(amap.equals(bmap)) cnt++;

      // 윈도우 밀기
      amap.put(s.charAt(lt), amap.get(s.charAt(lt))-1);
      if(amap.get(s.charAt(lt)) == 0) amap.remove(s.charAt(lt));
      lt++;
    }
    return cnt;
  }
  
  public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    String s = sc.next();
    String t = sc.next();

    System.out.println(solution2(s, t));
  }
}

답변 1

0

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

안녕하세요^^

아래 입력으로 디버그해보세요.

AbcDecbDc

bcD

 

kym9129님의 프로필 이미지
kym9129

작성한 질문수

질문하기