본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 383. Ransom Note

반응형

https://leetcode.com/problems/ransom-note/description/

 

Ransom Note - LeetCode

Ransom Note - Given two strings ransomNote and magazine, return true if ransomNote can be constructed by using the letters from magazine and false otherwise. Each letter in magazine can only be used once in ransomNote.   Example 1: Input: ransomNote = "a"

leetcode.com

자료구조를 이용한 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

magazine에 나온 alphabat의 빈도 수를 저장할 map magazineMap을 선언 후 형태에 맞게 저장합니다.

📔 풀이과정

ransomNote의 원소를 수행하며 magazineMap에 해당 원소 빈도 수가 0이라면 false를 아니면 1씩 감소시켜 소모했음을 나타내줍니다.


📕 Code

📔 C++

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
        map <char, int> magazineMap;
        for(auto m : magazine) {
            magazineMap[m]++;
        }
        for(auto r : ransomNote) {
            if(!magazineMap[r]) return false;
            magazineMap[r]--;
        }
        return true;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.