Table of Contents
728x90
해시로 풀어보기
https://school.programmers.co.kr/learn/courses/30/lessons/42577
def solution(phone_book):
answer = True
hash_map = {}
# 해시맵 key값에 phonenumber를 담는다.
for phone in phone_book:
hash_map[phone] = 0
for phone in phone_book:
prefix =''
# phonenumber를 for문에서 돌려주면 각각 한 자리씩 자를 수 있다.
# 한 자리씩 계속 더하면서 기존의 해시맵에 들어있는 phonenumber와 비교한다.
for char in phone:
prefix += char
if prefix in hash_map and prefix!=phone:
answer = False
return answer
이 문제를 해시로 풀면 안될 것 같은데 해시문제니까 해시로 풀어봤습니다. 파이썬에는 startswith라는 편하고 멋진 함수가 있으니까 이걸 사용해서 풀어보겠습니다.
startswith 로 풀어보기
def solution(phone_book):
answer = True
phone_book.sort()
phone_book.append(phone_book[0])
for i in range(len(phone_book)-1):
phone = phone_book[i]
phone2 = phone_book[i+1]
if phone2.startswith(phone):
answer = False
break
return answer
여기서 먼저 sort해서 str길이가 짧은 것부터 긴 것 순으로 나열합니다. 그 다음 두 값을 계속 비교하기 위해 맨 끝에 맨 첫 값을 append합니다. for문을 돌면서 phone2가 phone으로 시작하는지 확인합니다. 여기서 for문은 length가 1작게 돕니다. 왜냐면 제가 앞서 맨 첫 값을 하나 더 추가해줬으니까요.
좀 빨라진 것 같습니다! 문자열 함수를 많이 알아두는 것이 좋겠습니다.
'코딩테스트' 카테고리의 다른 글
[파이썬] 해시 > 폰켓몬 (1) | 2024.05.26 |
---|---|
[파이썬] 해시맵 HashMap (0) | 2024.05.26 |
[파이썬] TwoSum 해시로 풀기 (1) | 2024.05.25 |
[파이썬] 스택/큐 > 주식가격 (0) | 2024.05.23 |
[파이썬] 스택/큐 > 기능개발 (0) | 2024.05.23 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- LLM
- 오블완
- clustering
- 티스토리챌린지
- 리스트
- 손실함수
- t5
- speaking
- 해시
- nlp
- Transformer
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- 파이썬
- recursion #재귀 #자료구조 # 알고리즘
- Github
- Python
- 코딩테스트
- RAG
- Array
- English
- Lora
- LIST
- Hugging Face
- Numpy
- cnn
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- git
- PEFT
- classification
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함