기본 사용법은 다음과 같다.
1
dict.get(key, default = None )
보통 dict 이라고 표현한 딕셔너리는 우리가 흔히 아는 key 와 value 로 이루어진 객체다.
다음과 같은 예를 보자.
1
a = { 'banana': 1500, 'melon': 9000}
위와 같은 딕셔너리(dict) 가 있다고 하면, get() 메소드의 첫번째 인자로 하나의 키를 넣어주면 해당 키의 값(value) 를 반환한다.
1
2
3
4
5
a.get('banana')
>>> 1500
a.get('melon')
>>> 9000
첫번 째 매개변수로 넘겨준 것이 딕셔너리의 키에 속하지 않는다면?
1
2
a.get('strawberry')
>> None
해당 key 가 없을 때 반환되는 값을 바꾸고 싶다면, get() 메소드의 두번째 인자로 주면 된다.
1
2
a.get('strawberry', 0)
>>> 0
딕셔너리를 활용한 이진탐색 알고리즘 빨리풀기 (https://www.acmicpc.net/problem/1920) 백준 링크
이진탐색은? divide & conquer 방식으로 푼다.
정렬된 배열의 가운데 인덱스와 찾을 값을 비교 작으면 왼쪽 크면 오른쪽 배열 재귀함수로 실행~ 이라는 특징이 있다.
하지만 값을 찾는 것을 dict 으로 표현한다면 ?
1
2
3
4
5
6
7
8
9
10
11
n = int(input())
index = list(map(int, input().split()))
m = int(input())
search = list(map(int, input().split()))
dic = {}
for i in index:
dic[i] = dic.get(i,1)
for i in search:
print(dic.get(i, 0))
첫번째 순회에서 딕셔너리에 들어갈 data 를 키값, value 값을 1로 쓴다. 두번째 순회에서는 search 요소를 순회하면서, 없으면 0을 가리키도록 하였다. 즉 , 해당값이 있으면 1이 print 되고 없으면 0 이 print 되는 것!
출처
https://bskyvision.com/1059#comment8440204