[문제이름] (Python)
0. 출처
- 유형 : 해시 (lv 2)
- 링크 : 전화번호 목록
1. 기록
- 22/04/13 (수)
2. 풀이
(1) 아이디어
1. 아이디어
>> 반복문 돌면서 기준이되는 폰넘버를 다른 폰넘버가 앞자리부터 가지고 있는지 확인해본다.
>> slicing 활용!
2. 시간복잡도
>>
3. 자료구조
>>
(2) 코드
# 효율성 테스트 3,4 실패
def solution(phone_book):
phone_book.sort()
for num in range(0, len(phone_book)):
for target in range(num+1, len(phone_book)):
target_num = phone_book[target]
if phone_book[num] == target_num[0:len(phone_book[num])]:
return False
return True
# startswith() 를 활용하면 이중for문없이 해결할 수 있다.
def solution(phone_book):
phone_book.sort()
for num in range(0, len(phone_book)-1):
if phone_book[num+1].startswith(phone_book[num]):
return False
return True
# startswith() 와 zip() 을 활용한 풀이
def solution(phoneBook):
phoneBook.sort()
print(phoneBook)
print(phoneBook[1:])
print(list(zip(phoneBook, phoneBook[1:])))
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
(3) 정리
(4) 참고
'코테기록 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 베스트앨범 (Python) (0) | 2022.04.14 |
---|---|
[프로그래머스] 위장 (Python) (0) | 2022.04.13 |
[프로그래머스] 완주하지 못한 선수 (Python) (0) | 2022.04.13 |
[프로그래머스] 입양 시각 구하기(1) (SQL) (0) | 2022.04.01 |
[프로그래머스] 동명 동물 수 찾기 (SQL) (0) | 2022.04.01 |