첫 번째 문자열을 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));
}
}
'Algorithm > 문제' 카테고리의 다른 글
34. 모든 아나그램 찾기 (0) | 2023.09.05 |
---|---|
33. 매출액의 종류 (0) | 2023.09.04 |
31. 학급 회장(해쉬) (0) | 2023.08.16 |
30. 최대 길이 연속 부분 수열 (0) | 2023.08.10 |
29. 연속된 자연수의 합 (0) | 2023.08.08 |