✔️ 내 답 -> 정답
import java.util.*;
public class Main {
public static String solution(String A, String B){
HashMap<Character,Integer> mapA = new HashMap<>();
HashMap<Character,Integer> mapB = new HashMap<>();
for(char x : A.toCharArray()) {
mapA.put(x,mapA.getOrDefault(x,0)+1);
}
for(char x : B.toCharArray()) {
mapB.put(x,mapB.getOrDefault(x,0)+1);
}
if(mapA.equals(mapB)) return "YES";
else return "NO";
}
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
String A = kb.next();
String B = kb.next();
System.out.println(solution(A,B));
}
}
여기서 중요한 것
(JAVA) HashSet은 정렬을 지원하지 않는다고 들었는대?https://jwdeveloper.tistory.com/m/278
중간에 출력 값들을 보기위해 위와 같이 코드를 추가한 결과
위와 같은 결과가 나왔다.
보면 정렬이 어느정도 되어져 있는 것을 확인 할 수 있다.
Compare Two HashMap Objects in Java
https://www.geeksforgeeks.org/compare-two-hashmap-objects-in-java/
✔️ 강의
import java.util.*;
public class Main {
public static String solution(String A, String B){
HashMap<Character,Integer> mapA = new HashMap<>();
HashMap<Character,Integer> mapB = new HashMap<>();
for(char x : A.toCharArray()) {
mapA.put(x,mapA.getOrDefault(x,0)+1);
}
for(char x : B.toCharArray()) {
if(mapA.get(x)>0) {
mapA.put(x,mapA.get(x)-1);
}
else {
return"NO";
}
}
return "YES";
}
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
String A = kb.next();
String B = kb.next();
System.out.println(solution(A,B));
}
}
강의는 -1씩 해서 결국 모두 0으로 만드는 HashMap을 반환했을 시 "YES"를 리턴하도록 설정했다.