❤️ 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
❤️🔥 풀이
def solution(phone_book):
for i in range(len(phone_book)):
for j in range(i+1, len(phone_book)):
if phone_book[i] == phone_book[j][:len(phone_book[i])]:
return False
return True
❤️🩹 개선점 찾기
sort를 해주고 같지 않을 때 바로 break를 걸어주면 효율성이 높아지지 않을까함
def solution(phone_book):
phone_book.sort()
for i in range(len(phone_book)):
for j in range(i+1, len(phone_book)):
if phone_book[i] == phone_book[j][:len(phone_book[i])]:
return False
else:
break
return True
❤️🔥 다른 사람 풀이
문자열 함수 startswith를 이용한 풀이 방법
def solution(phoneBook):
phoneBook = sorted(phoneBook)
for p1, p2 in zip(phoneBook, phoneBook[1:]):
if p2.startswith(p1):
return False
return True
💡 알아두기
s.startswith('찾을 문자') : s가 '찾을 문자'로 시작하는 경우 true를 반환한다.
s.endwith('찾을 문자') : s가 '찾을 문자'로 끝나는 경우 true를 반환한다.
728x90
'💡코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 | python] 베스트앨범 (0) | 2023.04.17 |
---|---|
[프로그래머스 | python] 위장 (0) | 2023.04.17 |
[프로그래머스 | python] 완주하지 못한 선수 (0) | 2023.04.17 |
[프로그래머스 | python] 폰켓몬 (0) | 2023.04.17 |
[프로그래머스/python] 조이스틱 (0) | 2023.04.14 |