python의 map 함수란?
- map(function, iterable, ...)
- 첫번째 인자로 함수의 이름이 들어온다.
- 두번째 인자로 iterable한 데이터(ex list, dictionary)가 위치한다.
- 즉 두번째 인자를 하나씩 첫번째 함수의 인자로 넣어 list 형태로 반환하는 함수이다.
- hash 개념을 구현한 함수이다.
BOJ 1920번 수 찾기 문제풀이
위 문제의 의도는 원래 이분탐색을 통해 풀이하는 것이 정해이지만
파이썬의 map함수를 이용하여 hash 개념으로도 풀 수 있다.
N, A = int(input()), {i: 1 for i in map(int, input().split())}
M = input()
for i in map(int, input().split()):
print(A.get(i, 0))
위 문제에서는 파이썬 내장함수인 int 함수를 써서 string을 int로 변환하고 반복문을 이용해 입력과 동시에 출력한 것이 핵심이다.
print(A[i])
4번째 줄에 위와 같이 사용할 수도 있다고 생각할 수도 있으나 map에 정의되지 않은 key가 들어 올 때 오류를 발생시킨다.
print(A.get(i, 0))
따라서 다음과 같이 get함수를 써서 첫번째 인자로 주어진 값이 map 데이터에 없다면 default 출력 값으로 출력되게 두번째 인자에 그 값을 출력할 수 있다. 자세한 사항은 아래 reference를 참고하자.
Reference
'Python' 카테고리의 다른 글
[Python] enumerate, BOJ 17389번 보너스 점수 풀이 (0) | 2020.01.03 |
---|---|
[Python] Annotation , 파이썬 주석처리하기 (0) | 2018.07.04 |
댓글