2021. 1. 19. 02:05ใ๐ Algorithm/๐ช๐ป Python ๋ฌธ์ ํ์ด
๋ฌธ์ ์ค๋ช
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ ์ค, ํ ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์๋์ง ํ์ธํ๋ ค ํฉ๋๋ค.
์ ํ๋ฒํธ๊ฐ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ, ๊ตฌ์กฐ๋ ์ ํ๋ฒํธ๋ ์์์ด์ ์ ํ๋ฒํธ์ ์ ๋์ฌ์
๋๋ค.
- ๊ตฌ์กฐ๋ : 119
- ๋ฐ์ค์ : 97 674 223
- ์ง์์ : 11 9552 4421
์ ํ๋ฒํธ๋ถ์ ์ ํ ์ ํ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด phone_book ์ด solution ํจ์์ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด๋ค ๋ฒํธ๊ฐ ๋ค๋ฅธ ๋ฒํธ์ ์ ๋์ด์ธ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด false๋ฅผ ๊ทธ๋ ์ง ์์ผ๋ฉด true๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- phone_book์ ๊ธธ์ด๋ 1 ์ด์ 1,000,000 ์ดํ์ ๋๋ค.
- ๊ฐ ์ ํ๋ฒํธ์ ๊ธธ์ด๋ 1 ์ด์ 20 ์ดํ์ ๋๋ค.
์ ์ถ๋ ฅ ์์
ํ์ด ๊ณผ์
ํด์ฌ๋ฅผ ์ด์ฉํ์ฌ ํ์ด์ผ ํจ์จ์ฑ์ ํต๊ณผํ ์ ์๋ ๋ฌธ์ ์๋ค. ํด์ฌ ์ฐ์ต ๋ฌธ์ ์์ ์กด์ฌํ์ฌ ๋์ ๋๋ฆฌ๋ก phone_book์ ๋ฐ๊ฟจ๋ค.
์ ๋์ฌ๊ฐ ๊ฐ์์ง ํ๋ณํ๋ ๊ฒ์ ์ด๋ป๊ฒ ์ฝ๋๋ก ์ง์ผํ ๊น ๊ณ ๋ฏผํ๋ค๊ฐ list์ ์ฌ๋ผ์ด์ฑ์ ์ด์ฉํ๋ฉด ๋๊ฒ ๋ค ์๊ฐ์ด ๋ค์ด slice๋ก ๋น๊ตํ ๋ฒํธ์, ๊ธฐ์ค์ด ๋ ๋ฒํธ ์ค ๋น๊ตํ ๋ฒํธ๋ฅผ ๊ธฐ์ค์ด ๋ ๋ฒํธ์ ํฌ๊ธฐ๋งํผ slicing ํ์ฌ ๊ฐ์์ง ๋ค๋ฅธ์ง๋ฅผ ๊ตฌ๋ณํ์๋ค.
ํจ์จ์ฑ๊ณผ ํ ์คํธ์ผ์ด์ค 1~6, 9~10์ ํต๊ณผํ์์ง๋ง ๊ณ์ 8,9๊ฐ ์คํจ๊ฐ ๋ด๋ค. ์ ๊ทธ๋ฐ์ง ๋ค๋ฅธ ์ฌ๋๋ค์ ์ง๋ฌธ์ ๋ณด๋ sort๋ฅผ ํด์ฃผ์ง ์์ผ๋ฉด ๋ฐ์ํ๋ ๋ฌธ์ ๋ก ๋ณด์ฌ phone_book์ sortํ๊ณ ์์ํ์๋๋ ๋ชจ๋ ํต๊ณผํ ์ ์์๋ค.
def solution(phone_book):
phone_book.sort()
phone_book = dict([(index, list(phone)) for index, phone in enumerate(phone_book)])
for i in range(len(phone_book)):
size = len(phone_book[i])
for j in range(i+1, len(phone_book)):
if len(phone_book[j]) >= size:
if phone_book[j][0:size] == phone_book[i]:
return False
else:
return True
if __name__ == "__main__":
print(solution(["0", "97674223", "1195524421"]))
print(solution(["123","456","789"]))
print(solution(["123", "456", "4567", "999"]))
print(solution(["113","44","4544"]))
'๐ Algorithm > ๐ช๐ป Python ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python - ํ๋ก๊ทธ๋๋จธ์ค Level2] ์์ฅ (0) | 2021.01.19 |
---|---|
[Python - ๋ฐฑ์ค 7576] ํ ๋งํ (0) | 2021.01.17 |
[Python - ๋ฐฑ์ค 2178] ๋ฏธ๋ก ํ์ (0) | 2021.01.12 |