해시쓰기!필수 (아니면 시간초과)
문제이해
배열에 요소가 배열의 다른 요소의 접두사가 되면 False
아니면 True
def solution(phone_book):
phone_book.sort()
ans = 1
for i in range(len(phone_book)-1):
for j in range(i+1,len(phone_book)):
e = len(phone_book[i])
if phone_book[i] == phone_book[j][:e]:
ans = 1
return False
return True
----------------------------------------------------------------
def solution(phone_book):
hash = {}
for i in phone_book:
hash[i] = 1
for i in phone_book:
arr = ''
for j in i:
arr += j
if arr in hash and arr != i:
return False
return True
첫번쨰는
시간초과 코드....
해시안쓰면 풀릴수 없는 문제였다
<comment>
1.해시는 딕셔너리와 같은것
2.배열의 요소를 key값으로 하고 value는 아무값이나 설정
3.각요소의 숫자를 하나하나돌면서 arr에 담고 담을때마다 hash에 있는지 확인하고
4.자기자신은 무조건 hash에 있으므로 자기자신은 제외하기 !
'스터디 > 알고리즘' 카테고리의 다른 글
의상 (0) | 2024.01.11 |
---|---|
[2178] 미로 탐색 (1) | 2024.01.09 |
폰켓몬 (2) | 2024.01.08 |
완주하지 못한 선수 (0) | 2024.01.08 |
[1049] 기타줄 (0) | 2024.01.08 |