Study Anything ๐Ÿง

804. Unique Morse Code Words ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜๋ฌธ์ œ ํ’€์ด/LeetCode

804. Unique Morse Code Words

์†” 2022. 2. 27. 23:05

#Array #HashTable #String

 

 

๊ตญ์ œ ๋ชจ์Šค ์ฝ”๋“œ๋Š” ๊ฐ ๋ฌธ์ž๋ฅผ ์ ๊ณผ ๋Œ€์‹œ์— ๋งคํ•‘ํ•ด ํ‘œ์ค€ ์ธ์ฝ”๋”ฉ์„ ์ •์˜ํ•œ๋‹ค. (์ธ์ฝ”๋”ฉํ•œ๋‹ค.)

ํŽธ์˜๋ฅผ ์œ„ํ•ด ์˜์–ด ์•ŒํŒŒ๋ฒณ์˜ 26๊ฐœ ๊ธ€์ž์— ๋Œ€ํ•œ ์ „์ฒด ๋ชจ์Šค ๋ณ€ํ™˜ ํ‘œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๊ฐ ์ฒ ์ž๋ฅผ ํ†ตํ•ด ๋ชจ์Šค ๋ถ€ํ˜ธ์˜ ๊ฒฐํ•ฉ์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋‹จ์–ด ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ,

๋ฆฌ์ŠคํŠธ์˜ ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋ชจ์Šค ๋ถ€ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋‹ค๋ฅธ ๋ณ€ํ™˜์˜ ๊ฐ€์ง“์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ฆ‰, ๋‹จ์–ด๊ฐ€ ๋‹ฌ๋ผ๋„ ๋ชจ์Šค ๋ถ€ํ˜ธ๋กœ ๋ณ€ํ™˜ํ–ˆ์„ ๋•Œ ๊ฐ™์€ ๊ฐ’์ด ์–ป์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

(ex. "gin" -> "--...-.", "zen" -> "--...-." ์œผ๋กœ ๋ฐ˜ํ™˜๊ฐ’์ด ๊ฐ™์Œ)

 


Trial 1 : Python3, 22/02/27

class Solution:
    def uniqueMorseRepresentations(self, words: List[str]) -> int:
        morseList = [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---",
                     "-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-",
                     "...-",".--","-..-","-.--","--.."]
        
        re = set()
        
        for w in words:
            reStr = ""
            for c in w:
                idx = ord(c) - ord('a')
                reStr = reStr + morseList[idx]
            re.add(reStr)
        
        return len(re)

ํ’€์ด:

ํŒŒ์ด์ฌ์˜ set() ์ž๋ฃŒํ˜•์€ ์ง‘ํ•ฉ ํŠน์„ฑ์„ ๊ฐ€์ง€๋ฉฐ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

words ๋ฆฌ์ŠคํŠธ ๋‹จ์–ด์˜ ๊ฐ ์ฒ ์ž๋ฅผ ord() ํ•จ์ˆ˜(ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฌธ์ž๋ฅผ ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ๋ฌธ์ž์˜ ์•„์Šคํ‚ค ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.)๋ฅผ ํ†ตํ•ด ์•„์Šคํ‚ค ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ๋ชจ์Šค๋ถ€ํ˜ธ ๋ฆฌ์ŠคํŠธ์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•œ๋‹ค.

๊ตฌํ•œ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ๋‹จ์–ด์˜ ๋ชจ์Šค๋ถ€ํ˜ธ ๋ณ€ํ™˜ ๋ฌธ์ž์—ด์„ ๋ฏธ๋ฆฌ ์„ ์–ธํ•œ set() ์— ์ถ”๊ฐ€ํ•˜๋ฉด ์ค‘๋ณต์„ ๊ฑฐ๋ฅด๊ณ  ์ถ”๊ฐ€๋œ๋‹ค.

๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๊ฒ€์‚ฌํ•œ ํ›„ ์„ธํŠธ์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

 

๋ฆฌ๋ทฐ: 

๋Ÿฐํƒ€์ž„ 95.71%, ๋ฉ”๋ชจ๋ฆฌ 61.49% ์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ๋‹ค.

์ด๋ฒˆ์—๋„ ๋ฌธ์ œ๋ฅผ ํ‘ผ ํ›„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด๋ฅผ ๋ดค๋”๋‹ˆ ๋žŒ๋‹ค์‹์„ ์ด์šฉํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐํ•œ ๊ฒฝ์šฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋žŒ๋‹ค์‹์œผ๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์„์ง€ ์‹œ๋„ํ•ด ๋ณผ ์ƒ๊ฐ์ด๋‹ค.

 

 

 

728x90

'์•Œ๊ณ ๋ฆฌ์ฆ˜๋ฌธ์ œ ํ’€์ด > LeetCode' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

118. Pascal's Triangle  (0) 2022.03.08
413. Arithmetic Slices  (0) 2022.03.04
1637. Widest Vertical Area Between Two Points Containing No Points  (0) 2022.02.11
1108. Defanging an IP Address  (0) 2022.02.10
438. Find All Anagrams in a String - Trial 2  (0) 2022.02.03
Comments