728x90
주의점!
- 매개변수 phone_book은 문자열로 주어집니다.
- 같은 번호가 중복해서 들어있지 않는다.
해결방법!
- 파이썬의 문자열 정렬을 이용한다.
- 파이썬의 리스트 슬라이싱을 이용한다.
def solution(phone_book):
answer = True
phone_book.sort()
for i in range(len(phone_book)-1):
if phone_book[i] == phone_book[i+1][:len(phone_book[i])]:
answer = False
return answer
return answer
파이썬의 리스트 슬라이싱을 이용하면 index out of range를 받지 않고 해결할 수 있다. 반복문도 1번만 사용하니 더욱 빠르다.
이전에 백준에서 비슷한 문제를 풀었다. 심지어 문제 이름도 같다.
def solution(phone_book):
dict = {}
for i in phone_book:
dict[i] = 1
for nums in phone_book:
arr = ""
for num in nums:
arr += num
if arr in dict and arr != nums:
return False
return True
def solution(phoneBook):
phoneBook.sort()
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
728x90
'[Coding Test] > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] lv3 베스트앨범 / 파이썬, 고득점kit (0) | 2023.10.05 |
---|---|
[프로그래머스] lv2 의상 / 파이썬, 고득점kit (0) | 2023.10.05 |
[프로그래머스] lv1 완주하지 못한 선수 / 파이썬, 고득점kit (0) | 2023.10.04 |
[프로그래머스] lv1 폰켓몬 / 파이썬, 고득점kit (0) | 2023.10.04 |
[프로그래머스] lv2 가장 큰 수 / 파이썬, 고득점kit (1) | 2023.10.03 |