전화번호 목록
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 다른 사람 풀이(해시 이용)
- .sort(key=len)
- 길이순으로 정렬
- 가장 짧은 길이부터 늘려가면서 길이 만큼 자른 해시값 찾기
- answer=False , return answer 보다 바로 return False 해버리는게 빠르다
- .sort(key=len)
def solution(phoneBook):
#길이로 정렬
phoneBook.sort(key=len)
hash_table={}
#맨 처음 가장 짧은 길이
min_len=len(phoneBook[0])
for p in phoneBook:
hash_table[hash(p)]=p
#가장 짧은 길이부터 잘라서 해시 값 찾아가기
for i in range(min_len,len(p)): #p가 최소길이인 경우는 실행하지 X
try:
if hash_table[hash(p[0:i])]: #len(p)-1 까지만 검색
return False
except:
continue
return True
- 간단한 풀이
- startswith(시작하는문자, 시작지점) 사용
- https://yygs321.tistory.com/181
[Python] 특정문자 찾는 함수(find,startswith,endswith)
find find(찾을문자, 찾기시작할위치) >>> s = '가나다라 마바사아 자차카타 파하' >>> s.find('마') 5 >>> s.find('가') 0 >>> s.find('가',5) -1 find는 문자열중에 특정문자를 찾고 위치를 반환해준다, 없을경..
yygs321.tistory.com
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 2] [스택/큐] 기능 개발 (0) | 2022.07.23 |
|---|---|
| [프로그래머스] [Level 2] [해시] 위장 (0) | 2022.07.21 |
| [프로그래머스] [Level 2] [2018 KAKAO BLIND RECRUITMENT 3차] 방금그곡 (0) | 2022.06.20 |
| [프로그래머스] [Level 2] [다이나믹 프로그래밍] 가장 큰 정사각형 찾기 (0) | 2022.06.20 |
| [프로그래머스] [Level 2] [2018 KAKAO BLIND RECRUITMENT 3차]압축 (0) | 2022.06.17 |