[LeetCode] Ransom Note

아르당·2026년 1월 7일

LeetCode

목록 보기
79/94
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

두 개의 문자열 ransomNote와 magazine이 주어졌을 때, magazine의 글자를 사용해서 ransomNote를 구성할 수 있다면 true를, 그렇지 않다면 false를 반환해라.

magazine에 있는 각 글자는 ransomNote에서 한 번만 사용할 수 있다.

Example

#1
Input: ransomNote = "a", magazine = "b"
Output: false

#2
Input: ransomNote = "aa", magazine = "ab"
Output: false

#3
Input: ransomNote = "aa", magazine = "aab"

Constraints

  • 1 <= ransomNote.length, magazine.length <= 10^5
  • ransomNote와 magazine은 영어 소문자로 구성된다.

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글