상세 컨텐츠

본문 제목

804. Unique Morse Code Words (C++)

알고리즘/leetcode

by 아리따운노을 2021. 10. 31. 22:34

본문

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

 

Unique Morse Code Words - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

오랜만에 문제 풀이다. 계속 한다고 해놓고 게을러 터져가지고 못한거도 있고... 백신 2차 부작용이 너무 심해서 계속 누워만 있었다.. 지금도 피곤하긴 하다. 근데 하루종일 집에 누워있었더니 너무 무의미하게 하루를 보내는거 같아서 오랜만에 생각나서 풀었다. 아직은 맨날 Easy만 푸는 정도지만 얼른 Medium까지 풀 수 있도록 공부 많이 해야겠다.

 

문제의 대한 해설은 이렇다.

각각의 알파벳에 따른 모스 부호는 각각 다르지만 조합에 놓고 보았을 때 그 모스 부호의 string이 똑같은 경우가 있다. 주어진 문자열을 모스부호로 변환해서 보았을 때 unique한 값이 몇개나 존재하는지 알아보는 문제이다.

 

그래서 그냥 각각의 words들을 모스부호로 변환한 다음 string으로 변환해 map을 이용해서 간단하게 풀었다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution {
public:
    int uniqueMorseRepresentations(vector<string>& words) {
        int ans = 0;
        string mos[26= {".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
        
        map<string, int> isExist;
        
        for(int i=0;i<words.size();i++){
            string word = "";
            for(int j=0;j<words[i].size();j++){
                word += mos[words[i][j] - 'a'];
            }
            if(!isExist[word]){
                isExist[word] = 1;
                ans++;
            }
        }
        return ans;
    }
};
cs

 

'알고리즘 > leetcode' 카테고리의 다른 글

169. Majority Element (C++)  (0) 2021.10.31
202. Happy Number (C++)  (0) 2021.10.07
190. Reverse Bits (C++)  (0) 2021.10.07
20. Valid Parentheses (C++)  (0) 2021.10.06
119. Pascal's Triangle II (C++)  (0) 2021.10.05

관련글 더보기

댓글 영역