import java.util.*;
class Main{
public 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()){
if(!map.containsKey(x) || map.get(x) == 0) return "NO";
map.put(x, map.get(x)-1);
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
String a=sc.next();
String b=sc.next();
System.out.println(T.solution(a,b));
}
}
첫번째 입력받은 문자열의 문자, 문자의 개수의 쌍으로 hashMap을 만든다.
두번째 입력받은 문자열을 돌며 map에 포함되어있지 않은 문자가 있거나 문자의 개수가 0이라면 NO를 리턴하고
그렇지 않다면 문자의 개수를 하나씩 감소시키며 확인한다.
'ALGORITHM' 카테고리의 다른 글
[JAVA] 알고리즘 : TreeSet - k번째 큰 수 (0) | 2022.07.06 |
---|---|
[JAVA] 알고리즘 : Hash, sliding window - 매출액의 종류 (0) | 2022.07.05 |
[JAVA] 알고리즘 : HashMap - 학급 회장 (0) | 2022.07.04 |
[JAVA] 백준 1312번- 소수 (0) | 2022.07.03 |
[JAVA] 백준 13241번- 최소공배수 (0) | 2022.07.02 |