Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 깊이우선탐색
- react-native
- Data Structure
- react-native-navigation
- Javascript
- 넓이우선탐색
- 타겟 넘버
- Brute Force
- 이중우선순위큐
- 가장 큰 수
- 완주하지 못한 선수
- 디스크 컨트롤러
- Algorithm
- 전화번호 목록
- 더 맵게
- Virtual DOM
- react
- Queue
- Programmers
- Stack
- browser workflow
- 기능개발
- 다리를 지나는 트럭
- sorting
- react-native bind
- 주식
- hash
- heap
- 소수찾기
- k번째수
Archives
- Today
- Total
개발 블로그
[프로그래머스/Python3/Hash] 전화번호 목록 본문
1. 문제 설명(출처: programmers.co.kr/learn/courses/30/lessons/42577)
2. 문제 풀이
1) 이 문제는 굳이 hash로 풀지 않아도 되지만, hash로 분류되어 있으니 hash로 풀기 위해 빈 dict인 hamp을 생성한다.
2) phone_book의 모든 전화번호에 아래와 같은 명령을 수행한다.
2-1) hmap에 각 전화번호를 key로 아무 value 값을 넣어준다.
3) phone_book의 모든 전화번호에 아래와 같은 명령을 수행한다.
3-1) 모든 전화번호의 접두사 검사를 위해 빈 문자열 temp를 생성한다.
3-2) 각 전화번호의 숫자들에 대해 아래와 같은 명령을 수행한다.
3-2-1) temp에 현재 전화번호의 숫자를 붙인다.
3-2-2) 만약 나 자신 이외에 temp가 hmap에 key로서 존재한다면
3-2-2-T1) False를 반환한다.
4) 어떤 번호가 다른 번호의 접두사인 경우가 없으므로 True를 반환한다.
3. 결과 코드
def solution(phone_book):
hmap = {}
for cell in phone_book:
hmap[cell] = 1
for cell in phone_book:
temp = ""
for number in cell:
temp += number
if temp in hmap and temp != cell:
return False
return True
'IT > Programmers' 카테고리의 다른 글
[프로그래머스/Javascript/Hash] 베스트앨범 (0) | 2021.04.12 |
---|---|
[프로그래머스/Javascript/Hash] 위장 (0) | 2021.04.11 |
[프로그래머스/Javascript/Hash] 완주하지 못한 선수 (0) | 2021.04.09 |
[프로그래머스/Javascript/Sorting] H-Index (0) | 2021.04.08 |
[프로그래머스/Javascript/Sorting] 가장 큰 수 (0) | 2021.04.08 |