• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

왜틀린지 아무리 봐도 모르겠습니다 ㅠ

21.07.22 23:31 작성 조회수 113

0

public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        String t = in.next(); //t.length <= s.length

        HashMap<Character,Integer> tHash = new HashMap<>();
        for(int i=0;i<t.length();i++){
            tHash.put(t.charAt(i),tHash.getOrDefault(t.charAt(i),0)+1);
        }

        int lt=0, cnt=0,answer=0;
        HashMap<Character,Integer> sHash = new HashMap<>();
        for(int rt =0;rt<s.length();rt++){
            sHash.put(s.charAt(rt),sHash.getOrDefault(s.charAt(rt),0)+1);
            cnt++;
            if(cnt == tHash.size()){
                if(sHash.equals(tHash)) answer++;
                sHash.put(s.charAt(lt),sHash.get(s.charAt(lt))-1);
                if(sHash.get(s.charAt(lt))==0){
                    sHash.remove(s.charAt(lt));
                }
                lt++;
                cnt--;
            }
        }

        System.out.print(answer);

    }
이전 문제에서도 for문을 미리 L까지 돌려주지 않고 한번에 돌리는식으로 하여서 정답을 얻었습니다. 이번 문제도 이전 문제와 유사해서 비슷한 방식으로 해주었는데 왜 자꾸 오답이라고 하는지 모르겠습니다 ㅠㅠ

답변 1

답변을 작성해보세요.

0

안녕하세요^^

아래 입력이 나오지 않습니다. 7번인덱스부터 아나그램이 되고, 8번부터, 9번부터 총 3개의 아나그램이 나와야 합니다.

AGSDEGEWetabtqtqEFqGHIJKLtabeWPQRSTUVWetabdgXYabteWcdefghijklmnopqrabtWestu

WetabtqtqEFqGHIJKLtabeWPQRSTUVWetabdgXYabteWcdefghijklmnopqrabt