[ํ๋ก๊ทธ๋๋จธ์ค/python] ํด์(hash) : ์ ํ๋ฒํธ ๋ชฉ๋ก
๋ฌธ์ ์ค๋ช
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ ์ค, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ค ํฉ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ตฌ์กฐ๋ ์ ํ๋ฒํธ๋ ์์์ด์ ์ ํ๋ฒํธ์ ์ ๋์ฌ์
๋๋ค.
- ๊ตฌ์กฐ๋ : 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 i in phone_book:
hash_map[i] = 1
for i in phone_book:
temp = ""
for number in i:
temp += number
if temp in hash_map and temp != i:
return False
return True
์ ํ๋ฒํธ๋ฅผ hash_map์ ํค๋ก ์ ์ฅํ๋ค.
์ ํ๋ฒํธ๋ฅผ ํ๊ธ์์ฉ ๋๋ฆฌ๋ฉด์ temp์ ์ ์ฅํ๊ณ
temp๊ฐ์ด hash_map์ ์๊ณ temp๊ฐ์ด ์ ํ๋ฒํธ ๋ง์ง๋ง ๊ธ์๊น์ง ๊ฐ๊ธฐ ์ ์ด๋ผ๋ฉด False๋ฅผ ์ถ๋ ฅํ๋ค.
์๋ฅผ ๋ค์ด hash_map์ "00"๊ณผ "00232"๊ฐ ์์ ๋
00232๋ฅผ ํ๊ธ์์ฉ temp์ ์ ์ฅํ๋ฉฐ hash_map๊ณผ ๋น๊ตํ๋ค.
i = 00 ์ผ ๊ฒฝ์ฐ,
temp = 0 ์ผ ๋, hash_map์ "0"์ ์๋ค.
temp = 00 ์ผ ๋, hash_map์ "00"์ด ์์ง๋ง i๊ฐ์ธ 00๊ณผ ๊ฐ๋ค.
i = 00232 ์ผ ๊ฒฝ์ฐ,
temp = 0 ์ผ ๋, hash_map์ "0"์ ์๋ค.
temp = 00 ์ผ ๋, hash_map์ "00"์ด ์๊ณ i๊ฐ์ 00232์ด๋ฏ๋ก 00๊ณผ ๊ฐ์ง์๋ค.
๋ฐ๋ผ์ ์ด ๊ฒฝ์ฐ False๋ฅผ returnํ๋ค.
๋ชจ๋ ์ ํ๋ฒํธ๋ฅผ ํ์ธํ์์๋ return์ด ์๋๋ค๋ฉด ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋ค๋ ๋ป์ด๋ฏ๋ก True๋ฅผ returnํ๋ค.
'๐์๊ณ ๋ฆฌ์ฆ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์์ ํ์ : ์์ ์ฐพ๊ธฐ (0) | 2021.04.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํ์๋ฒ(Greedy) : ์กฐ์ด์คํฑ (0) | 2021.03.29 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํด์(Hash) : ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2021.03.23 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํด์(Hash) : ์์ฅ (0) | 2021.03.23 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํ์๋ฒ(Greedy) : ๊ตฌ๋ช ๋ณดํธ (0) | 2021.03.18 |