728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 전화번호가 다른 전화번호의 접두사가 되는지 판별하는 문제입니다.
접두사가 되려면 전화번호의 앞 문자부터 일치해야 합니다.
하여 전화번호를 문자열 형태로 정렬하게 되면 1~9를 사전정렬하듯 오름차순으로 정렬됩니다.
정렬한 전화번호를 앞에서부터 해당 전화번호의 다음 전화번호와 비교하여 접두사인지 아닌지를 판별하면 되는데 여기서 다음 전화번호 하나만 비교하면 되는 이유는 전화번호를 문자열 형태로 정렬했기 때문입니다.
문자열 형태로 정렬했기 때문에 뒤 전화번호는 이전 전화번호보다 사전적으로 큰 값을 가지고 있어 현재 전화번호의 다음 전화번호밖에 접두사가 될 수 있습니다.
- 전화번호 목록을 문자열 형태에서 정렬한다. phone_book.sort()
- 전화번호 목록을 제일 마지막 전까지 하나씩 추출하여 for i in range(len(phone_book) - 1)
- 만약 현재 전화번호 목록이 다음 전화번호 목록의 접두사이면 if (phone_book[i] == phone_book[i + 1][ : len(phone_book[i])])
- 접두사인 경우가 존재하므로 False를 저장하고 answer = False
- 바로 반환하여 함수를 종료시킨다. return answer
반응형
3. 소스코드
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
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 기사단원의 무기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.07 |
---|---|
[프로그래머스] 네트워크 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.06 |
[프로그래머스] k진수에서 소수 개수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.05 |
[프로그래머스] 최고의 집합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.04 |
[프로그래머스] 덧칠하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.02 |
[프로그래머스] 실패율 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.01 |
[프로그래머스] 타겟 넘버 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.31 |
[프로그래머스] 이중우선순위큐 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.30 |