Study Anything ๐ง
804. Unique Morse Code Words ๋ณธ๋ฌธ
#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% ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๋ค.
์ด๋ฒ์๋ ๋ฌธ์ ๋ฅผ ํผ ํ ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฅผ ๋ดค๋๋ ๋๋ค์์ ์ด์ฉํด ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ๊ฒฝ์ฐ๋ฅผ ์ฐพ์ ์ ์์๋ค.
์ด๋ป๊ฒ ํ๋ฉด ๋ด๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ๋๋ค์์ผ๋ก ๋ฐ๊ฟ ์ ์์์ง ์๋ํด ๋ณผ ์๊ฐ์ด๋ค.
'์๊ณ ๋ฆฌ์ฆ๋ฌธ์ ํ์ด > 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 |