일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Spring
- depends_on
- 우아한 테크코스 2차 합격
- springboot 3.0.0
- 2차 코딩테스트
- javascript
- 프로그래머스
- github skyline
- S3
- TypeError: 'property' object is not iterable
- 우아한테크코스 2차
- METACLASS
- python all testcode
- 코딩테스트
- Django
- classmethod
- AWS S3
- 재귀함수가 뭔가요
- python
- github
- OperationalError
- docker
- EC2
- classproperty
- AWS
- DB
- depends
- 갓재석
- docker-compose
- MySQL server on 'db' (115)
Archives
hanbin.dev
[코딩테스트] 전화번호 목록 with Python 본문
아이디어
def solution(phone_book):
for a in phone_book:
for b in phone_book:
if a.startswith(b) and a != b:
return False
return True
그냥 문제 보자마자 이 코드가 생각났다.
물론 정확성 테스트는 그냥 통과하는데 효율성 테스트에서 막힌다.
다른 방법을 생각해야 했다.
제한 사항을 확인하자.
phone_book의 길이가 1,000,000 이하라고 한다.
최대 O(n log n) 으로 풀어야 한다.
문제 풀이 코드
def solution(phone_book):
phone_book.sort() # 1
for a,b in zip(phone_book, phone_book[1:]): # 2
if b.startswith(a):
return False
return True
#1
문자열 정렬로 접두어 번호가 비교되는 번호의 앞에 오도록 한다.
#2
바로 앞, 뒤만 체크하며 지나가 시간 복잡도가 줄어든다 O(N)
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 타겟 넘버 with Python (0) | 2021.05.13 |
---|---|
[코딩테스트] 프로그래머스 더 맵게 with Python (0) | 2021.05.12 |
[코딩테스트] 프로그래머스 프린터 with Python (0) | 2021.05.10 |
[코딩테스트] 프로그래머스 다리를 지나는 트럭 with Python (0) | 2021.05.09 |
[코딩테스트] 프로그래머스 기능개발 with javascript (0) | 2021.05.07 |