728x90
๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค ์ ํ๋ฒํธ๋ชฉ๋ก
https://school.programmers.co.kr/learn/courses/30/lessons/42577
์ฒ์ ์ฝ๋
def solution(phone_book):
for choice_phonephone in phone_book: # ํฐ๋ฒํธ ์ ํ
for phone in phone_book: # ๋น๊ตํ ํฐ๋ฒํธ
if choice_phonephone == phone: # ๋น๊ตํ ํฐ๋ฒํธ๊ฐ ์์ ํฐ๋ฒ์ด๋ฉด ํจ์ค
continue
if choice_phonephone in phone:
return False
return True
- ์ฒ์์ ๋ฐฐ์ด์ ์ด์ฉํ ์์ ํ์ ๋ฐฉ๋ฒ์ผ๋ก ํ์๋ค.
- ๊ธฐ์ค ํฐ๋ฒํธ๋ฅผ ์ ํํ๊ณ , ์ ํ๋ฒํธ๋ถ๋ฅผ ๋ชจ๋ ๋์๊ฐ๋ฉฐ ๋น๊ตํ ํฐ๋ฒํธ๋ฅผ ์ ํํ๊ณ ์ด์ ๋น๊ตํ๋ค.
- ๊ธฐ์ค ํฐ ๋ฒํธ์ ๋ฌธ์์ด์ด ๋น๊ตํ ํฐ๋ฒํธ์ ํฌํจ๋์ด์๋ค๋ฉด False๋ฅผ ๋ฐํํ๊ณ
- ๊ธฐ์ค ํฐ ๋ฒํธ์ ๋น๊ตํ ํฐ๋ฒํธ๊ฐ ๊ฐ๋ค๋ฉด ๊ฑด๋๋ด๋ค.
- ๋ชจ๋ ํ์์ ๋ง์ณค๋๋ฐ๋ ๊ธฐ์ค ํฐ๋ฒํธ์ ๋ฌธ์์ด์ด ๋น๊ต ํฐ๋ฒํธ์ ํฌํจ๋์ ์ด ์๋ค๋ฉด True๋ฅผ ๋ฐํํ๋ค.
๋ฌธ์ ์
์ด๋ ๊ฒ ํ๋ฉด ๋งค์ฐ ๊ฐ๋จํ์ง๋ง, ์๊ฐ๋ณต์ก๋๊ฐ ์ด๋ง๋ฌด์ํด์ง๋ค. ์๊ฐ๋ณต์ก๋๋ฅผ ์ค์ด๊ธฐ ์ํด ํด์๋ฅผ ์ฐ๋ฉด ์ข๋ค.
ํด์๋ฅผ ์ด์ฉํ ์ฝ๋
def solution(phone_book):
# ํด์๋งต ๋ง๋ค๊ธฐ
hash_map = {}
for nums in phone_book:
hash_map[nums] = 1
# ์ ๋์ด๊ฐ ํด์๋งต์ ์กด์ฌํ๋์ง ์ฐพ๊ธฐ
for nums in phone_book:
arr = ""
for num in nums:
arr += num
# ๋ณธ์ธ์ผ ๊ฒฝ์ฐ ์ ์ธ
if arr in hash_map and arr != nums:
return False
return True
์๋กญ๊ฒ ๋ฐฐ์ด์ / ๋๋์
ํด์?
- ํด์๋ ์๋ฃ๊ตฌ์กฐ ์ค ํ๋๋ค. ๋ฐ์ดํฐ๊ฐ ํค์ ๋ฐธ๋ฅ ํ์์ผ๋ก ํ์ํ ๋์ด์๋ค( = ๋์ ๋๋ฆฌ ๊ตฌ์กฐ)
- ํค์ ๋ฐธ๋ฅ๋ฅผ ๋งตํํ๋ ๊ณผ์ ์์ฒด๋ฅผ ํด์ฑ ์ด๋ผ๊ณ ํ๋ค.
- ๋ฐฐ์ด์ ์ธ ์ ์์๋ ํด์๊ฐ ์ข๋ค.
- ๋ฐฐ์ด์ arr[1], arr[2]๋ฑ ์ซ์ ์ธ๋ฑ์ค๋ก ์์๋ฅผ ์ ๊ทผํ์ง๋ง, ํด์๋ arr[’a’] ๊ฐ์ด ๋ฌธ์ ์ธ๋ฑ์ค๋ก ์ ๊ทผ ํ ์ ์๋ค.
- โญ๏ธ๋น ๋ฅธ ์ ๊ทผ/ํ์์ด ํ์ํ ๋ ์ฐ๋ฉด ์ข์ ์๋ฃ๊ตฌ์กฐ๋คโญ๏ธ
- ํด์๋ ๋๋ถ๋ถ์ ๋์์ด O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
- ๋ฐฐ์ด์์ ์์๋ฅผ ๋ฃ๊ฑฐ๋ ์ญ์ ํ ๋๋ ์๊ฐ๋ณต์ก๋๊ฐ O(1)~O(n)์ด์ง๋ง, ํด์๋ ์์ ์ฝ์ /์ญ์ ์ O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
- ํด์์ ์๊ฐ๋ณต์ก๋ ์์คํธ ์ผ์ด์ค๋ O(n)์ด๋ค. ์ฌ๋ฌ๊ฐ์ ํค ๊ฐ์ด ํด์ ํจ์๋ก ๊ฐ์ ๋ฐธ๋ฅ๋ฅผ ๊ฐ์ ธ์ ์ถฉ๋์ด ์ผ์ด๋ ๋ O(n)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
- ์ถฉ๋์ด ์ผ์ด๋ ๊ฒฝ์ฐ ์ ํํ์, ์ ๊ณฑํ์, ์ด์ค ํด์๋ก ํด๊ฒฐ ํ ์ ์๋ค.
- ์ ํํ์ : ์ถฉ๋์ด ๋ฐ์ํ ์์น๋ถํฐ ํ๋ํ๋์ฉ ๋ฐธ๋ฅ ํ์
- ์ ๊ณฑํ์ : ์ถฉ๋์ด ๋ฐ์ํ ์์น๋ถํฐ ์ ๊ณฑ๋งํผ ๋จ์ด์ง ๋ฐธ๋ฅ ํ์(1, 4, 9, 16 …)
- ์ด์คํด์ : ์ถฉ๋ ๋ฐ์ํ๋ฉด ๋ค๋ฅธ ํด์ ํจ์๋ฅผ ํ๋ฒ๋ ์ ์ฉ
- ์ถฉ๋์ด ์ผ์ด๋ ๊ฒฝ์ฐ ์ ํํ์, ์ ๊ณฑํ์, ์ด์ค ํด์๋ก ํด๊ฒฐ ํ ์ ์๋ค.
- ํด์๋ ์๊ฐ ๋ณต์ก๋๊ฐ ์์ ๋์ , ๊ณต๊ฐ ๋ณต์ก๋๊ฐ ํฌ๋ค.
- ํด์์ ์กด์ฌ๋ง ์์์ง, ์ด๋ค ์ํฉ์์ ์ฐ๋ฉด ์ข์์ง๋ฅผ ๋ชฐ๋๋ค.
- ํด์๋ ํ์/์ฝ์ /์ญ์ ๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ ์์ผ๋ก ๊ทธ๋ฐ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผํ๋ค๋ฉด ๋ฐฐ์ด๋ณด๋ค ํด์๋ฅผ ๋จผ์ ์๊ฐํด์ผ๊ฒ ๋ค.
728x90
'์ฝ๋ฉํ ์คํธ๐ก' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์นดํซ (0) | 2024.05.28 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์ (0) | 2024.05.26 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2024.05.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2024.05.22 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ (0) | 2024.05.21 |