๋ฌธ์
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ ์ค, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ค ํฉ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ตฌ์กฐ๋ ์ ํ๋ฒํธ๋ ์์์ด์ ์ ํ๋ฒํธ์ ์ ๋์ฌ์
๋๋ค.
- ๊ตฌ์กฐ๋ : 119
- ๋ฐ์ค์ : 97 674 223
- ์ง์์ : 11 9552 4421
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด phone_book ์ด solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด๋ค ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด false๋ฅผ ๊ทธ๋ ์ง ์์ผ๋ฉด true๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
phone_book์ ๊ธธ์ด๋ 1 ์ด์ 1,000,000 ์ดํ์ ๋๋ค.
- ๊ฐ ์ ํ๋ฒํธ์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์ ๋๋ค.
- ๊ฐ์ ์ ํ๋ฒํธ๊ฐ ์ค๋ณตํด์ ๋ค์ด์์ง ์์ต๋๋ค.
ํด์ค ์ฝ๋
def solution(phone_book):
hash_map = {}
for phone_num in phone_book:
hash_map[phone_num] = 1
print(hash_map)
for phone_num in phone_book:
temp = ''
for num in phone_num:
temp += num
if temp != phone_num and temp in hash_map:
return False
return True
๋ถ์ > ์ด๋ฒ ๋ฌธ์ ๋ฅผ ํตํด ํด์ ์ ๊ฐ๋ ์ ์๊ฒ ๋์๋ค. ํด์๋ผ๋ ๊ฒ์ ๊ฐ๋จํ ๋งํ๋ฉด key์ value๋ก ์ด๋ฃจ์ด์ง๋ ์ฌ์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ํ๋จ์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์๋ฏ์ด, phone_book์ ๊ฐ ์์๋ค๋ก ํด์๋งต์ ๋ง๋ค์ด์ค๋ค. ์ฌ๊ธฐ์ value๋ ์์์ ๊ฐ์๋ฅผ ์๋ฏธํ๋๋ฐ, ์ด๋ ๋์ค์ ์์์ ๊ฐ์๋ฅผ ๊ตฌํด์ผ ํ ๋๋ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์ตํด์ผ ํ ๋ถ๋ถ์ด๋ค. ์๋ฅผ ๋ค์ด, phone_book[1]์ ์ ๋์ด๋ 6,67,678 ์ธ๋ฐ (์ ์ฒด ๋จ์ด๊ฐ ์ ๋์ด๊ฐ ๋๋ฉด ๋ชจ๋ ๋ฌธ์๊ฐ ์ ๋์ด๋ฅผ ํฌํจํ๊ฒ ๋๋ฏ๋ก ์ ๋์ด๊ฐ ์๊ธฐ ์์ ์ด ๋๋ ์ํฉ์ ๋ฐฐ์ ํด์ผ ํ๋ค) ํด์๋งต์ ๋ณด๋ฉด '6'์ด ์๊ธฐ ๋๋ฌธ์ phone_book[1]์ ์ ๋์ด๋ฅผ ํฌํจํ๊ณ ์๋ ๋จ์ด๊ฐ ๋๋ค. ํด์์ ๊ฒฝ์ฐ ์๊ฐ๋ณต์ก๋๊ฐ ์ผ๋ฐ ๋ฐฐ์ด์ ์ ํํ์๋ณด๋ค ๋ฎ๊ณ ๋ชจ๋ ๊ฒฝ์ฐ๋ ์๋์ง๋ง ๋์ฒด๋ก O(1)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ทธ๋ฌ๊ธฐ์ ํด์๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋ฐ ๋ฐฐ์ด์ ์ ํํ์์ ์ฌ์ฉํ ๋๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ด๊ณ ๋น ๋ฅด๊ฒ ๋์ํ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ (0) | 2022.04.13 |
---|---|
[Programmers] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2022.04.13 |
[Programmers] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2022.04.13 |
[Programmers] ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (0) | 2022.04.12 |
[Programmers] ํ๋ ฌ์ ๋ง์ (0) | 2022.04.12 |