본문 바로가기
스터디/알고리즘

전화번호 목록

by 세졍 2024. 1. 9.

 

해시쓰기!필수 (아니면 시간초과)

문제이해
배열에 요소가 배열의 다른 요소의 접두사가 되면 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