문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
두 개의 문자열 ransomNote와 magazine이 주어졌을 때, magazine의 글자를 사용해서 ransomNote를 구성할 수 있다면 true를, 그렇지 않다면 false를 반환해라.
magazine에 있는 각 글자는 ransomNote에서 한 번만 사용할 수 있다.
#1
Input: ransomNote = "a", magazine = "b"
Output: false
#2
Input: ransomNote = "aa", magazine = "ab"
Output: false
#3
Input: ransomNote = "aa", magazine = "aab"
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
HashMap<Character, Integer> magaHash = new HashMap<>();
for(char c : magazine.toCharArray()){
magaHash.put(c, magaHash.getOrDefault(c, 0) + 1);
}
for(char c : ransomNote.toCharArray()){
if(!magaHash.containsKey(c) || magaHash.get(c) <= 0){
return false;
}
magaHash.put(c, magaHash.get(c) - 1);
}
return true;
}
}