본문 바로가기

Algorithm/Brute Force

(C++) - LeetCode (easy) 804. Unique Morse Code Words

반응형

https://leetcode.com/problems/unique-morse-code-words/description/

 

Unique Morse Code Words - LeetCode

Can you solve this real interview question? Unique Morse Code Words - International Morse Code defines a standard encoding where each letter is mapped to a series of dots and dashes, as follows: * 'a' maps to ".-", * 'b' maps to "-...", * 'c' maps to "-.-.

leetcode.com

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. 26개의 alphabat에 해당하는 morse부호의 vector morses를 선언 후 저장해줍니다.2. transformation된 문자를 key, 존재여부를 value로 transformMap을 선언해줍니다.

📔 풀이과정

words에 대해 2차원 for loop를 수행합니다. 하나의 단어도 여러 문자열로 되어있기에 하나의 단어를 가져와 morse부호로 변환 후 map에 저장해줍니다.

📔 정답 출력 | 반환

map의 size가 결국 transformation의 개수가 됩니다. 이를 반환해줍니다.


📕 Code

📔 C++

class Solution {
public:
    vector <string> morse = {
        ".-",
        "-...",
        "-.-.",
        "-..",
        ".",
        "..-.",
        "--.",
        "....",
        "..",
        ".---",
        "-.-",
        ".-..",
        "--",
        "-.",
        "---",
        ".--.",
        "--.-",
        ".-.",
        "...",
        "-",
        "..-",
        "...-",
        ".--",
        "-..-",
        "-.--",
        "--.."
    };
    
    int uniqueMorseRepresentations(vector<string>& words) {
        map<string, int> transformMap;
        for(auto word : words) {
            string transformedWord;
            for(auto w : word) {
                transformedWord += morse[w - 'a'];
            }
            transformMap[transformedWord] = 1;
        }
        return transformMap.size();
    }
};

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