Algorithm/문제

32. Anagram(해쉬)

챛채 2023. 9. 4. 16:25

첫 번째 문자열을 Hashmap에 카운팅을 완료해두고 두 번째 문자열을 탐색하면서 키가 있으면 키를 하나 감소시킨다.

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class Main {

    public static String Solution(String s1, String s2){
        String answer = "YES";
        HashMap<Character,Integer> map = new HashMap<>();

        for(char x : s1.toCharArray()){
            map.put(x, map.getOrDefault(x,0)+1);
        }

        for(char x : s2.toCharArray()){
            // s2.toCharArray()했을 때, key값이 map에 없거나,
            // key값이 있는데 value가 0일수가 없으니까
            if(!map.containsKey(x) || map.get(x)==0){
                return "NO";
            }else{
                map.put(x, map.get(x)-1);
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String input1 = in.next();
        String input2 = in.next();

        System.out.println(Solution(input1, input2));

    }
}