# ์ ํ๋ฒํธ ๋ชฉ๋ก # 42577 # lv2
# ๋ฌธ์
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ ์ค, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ค ํฉ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ตฌ์กฐ๋ ์ ํ๋ฒํธ๋ ์์์ด์ ์ ํ๋ฒํธ์ ์ ๋์ฌ์
๋๋ค.
๊ตฌ์กฐ๋ : 119
๋ฐ์ค์ : 97 674 223
์ง์์ : 11 9552 4421
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด phone_book ์ด solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด๋ค ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด false๋ฅผ ๊ทธ๋ ์ง ์์ผ๋ฉด true๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
phone_book return
["119", "97674223", "1195524421"] false
["123","456","789"] true
["12","123","1235","567","88"] false
# ์ ํ์ฌํญ
phone_book์ ๊ธธ์ด๋ 1 ์ด์ 1,000,000 ์ดํ์
๋๋ค. (ํจ์จ์ฑ ๊ณ ๋ คํ ๊ฒ!)
๊ฐ ์ ํ๋ฒํธ์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์
๋๋ค.
๊ฐ์ ์ ํ๋ฒํธ๊ฐ ์ค๋ณตํด์ ๋ค์ด์์ง ์์ต๋๋ค.
# ํ์ด
ํ์ด1
""" ์ด์ค for ๋ฌธ์ ์ฌ์ฉํ ํ์ด : ํจ์จ์ฑ ์ ํ ๋ฌธ์ ๋ฐ์. """
def solution(phone_book):
exist = True
for i in range(len(phone_book)):
idx_len = len(phone_book[i])
list2 = phone_book[i+1:] # ๋ค์ ์์๋ค์ ๋ด์ ๋ฆฌ์คํธ๋ฅผ ์์ฑ.
for j in list2: # ๋ฆฌ์คํธ์ ๊ฐ ์์๋ค ์ค
if phone_book[i] == j[:idx_len]: # ์์์ ๊ธธ์ด๋งํผ(์ ๋์ด์ธ์ง)
exist = False
return exist
def solution(phone_book):
exist = True
for i in range(len(phone_book)):
idx = len(phone_book[i])
for j in phone_book[i+1:]: # ์์ ๋ฆฌ์คํธ ์์ฑ์ ๊ตณ์ด ํ ํ์๊ฐ ์์ด์, ๋ค์ ์์๋ค ์ค์์
if phone_book[i] == j[:idx]: # j์ phone_book[i]๊ฐ ๋ค์ด์๋ค๋ฉด
exist = False # False
return exist
์ต์ข ํ์ด2
def solution(phone_book):
exist = True
phone_book.sort() # ๋ชจ๋ ์์๋ค์ ๋ํด sorting์ ํด์ฃผ๊ณ , ๋ฐ๋ก ๋ค์ ์ธ๋ฑ์ค์ ํด๋น ์์ ๊ฐ์ด ์๋์ง ํ์ธํ๋ค.
for i in range(len(phone_book) - 1):
idx = len(phone_book[i])
if phone_book[i] == phone_book[i+1][:idx]: # ๋ค์ ์ธ๋ฑ์ค์ ์์ ๋ด๋ถ์ ๋ฐ๋ก ์ ์์๊ฐ ๋ค์ด์์ผ๋ฉด False
exist = False
return exist