Home [Algorithm][Python] 딕셔너리 객체의 get() 메소드 사용법
Post
Cancel

[Algorithm][Python] 딕셔너리 객체의 get() 메소드 사용법

기본 사용법은 다음과 같다.

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

This post is licensed under CC BY 4.0 by the author.

[Algorithm][Python] 이진탐색 (Binary Search)

[Algorithm][Python] 그래프 (Graph) 에 대한 개념과 종류