Priv's Blog
map( ) 활용하기 본문
1. 개요
Python은 반복, 리스트, 문자열 등 프로그래밍을 하면서 정말 자주 마주하게 되는 매우 귀찮은(?) 상황들에 대해 정말 친절한 언어 중 하나입니다.
Python에는 이터러블 객체(Iterable Object)라는 개념이 존재하며, 이는 말 그대로 '반복'이 가능한 객체입니다.
map( ) 메서드는 이러한 이터러블 객체를 매개변수로 받아 데이터를 가공할 수 있습니다.
2. map( )
백준 사이트에서 알고리즘 문제를 Python으로 풀다 보면 map( )을 굉장히 자주 사용하게 됩니다.
25305번, 커트라인 문제를 보면 다음과 같습니다.
예제 입력 부분을 보면 한 줄에 여러 개의 숫자를 입력하고, 이 값들을 배열에 저장한 뒤 값을 출력해야 합니다.
100 76 85 93 98이라는 총 5개의 숫자는 공백으로 구분되어 있으며, 한 줄에 값을 모두 입력한 뒤 한꺼번에 데이터가 전달됩니다.
이럴 때 아래와 같이 map( )을 사용하면 매우 편리하게 리스트를 생성 및 데이터를 저장할 수 있습니다.
## 커트라인
import sys
def main() :
n, k = map(int, sys.stdin.readline().split())
l = list(map(int, sys.stdin.readline().split()))
l.sort(reverse = True)
print(l[k - 1])
if (__name__ == "__main__") :
main()
sys.stdin.readline( )을 통해 사용자의 값을 입력받으며, split( ) 메서드를 사용하여 공백 문자로 5개의 숫자를 분리했습니다.
그런 다음, 입력한 값들을 int 형으로 변환했습니다.
(Python에서는 사용자의 입력을 받을 때 기본적으로 str(문자열)로 취급합니다)
그 후, map( ) 메서드를 통해서 5개의 값들을 하나씩 꺼내어 l이라는 이름의 리스트에 넣어주었습니다.
map( ) 메서드는 이처럼 반복이 필요한 경우, 여러 개의 데이터를 규칙에 맞게 가공해야 할 경우에 유용히 사용할 수 있습니다.
수고하셨습니다!
'Dev. Study Note > Python' 카테고리의 다른 글
Pyinstaller 기초 사용법 (0) | 2023.08.03 |
---|---|
pip install jupyter C++ Build Tools 에러 해결 (0) | 2022.09.05 |
시퀀스, 튜플, 세트 간단 정리 (0) | 2020.11.29 |
if 문에서 or 중첩 사용 시 주의할 점 (0) | 2020.09.22 |
클래스 다중 상속 중, MRO에 따르는 점에 주의할 부분 (0) | 2019.08.21 |