Python3 백준 1000번 문제 map 함수 풀이

백준 사이트는 온라인 코딩 문제 풀이 사이트인데요.

 

가장 처음 만나게 되는 문제가 1000번 문제입니다.

 

1000번 문제는 가장 간단한 a,b를 입력받고 a+b를 출력하는 프로그램을 설계하는 것입니다.

 

etc-image-0

그리고 힌트를 보면 아래와 같이 되어 있는데요.

 

이곳에서 input, map, split 함수가 나옵니다.

etc-image-1

백준 1000번 문제 풀이

기본적으로 각각의 함수를 알아볼까요?

 

먼저 우리는 input함수를 통해서 파이썬에서 입력값을 불러올 수 있는데요.

a = int(input('숫자를입력해주세요'))
b = 10

print(f'입력된 숫자는 {a} 합계는 {a+b}')

정말 간단하게 입력을 받고 출력하는 시스템입니다.

 

출력은 아래와 같습니다.

etc-image-2

이제 2개의 입력을 받아봅니다.

a = int(input('1번 숫자를입력해주세요? '))
b = int(input('2번 숫자를입력해주세요? '))

print(f'입력된 숫자는 {a}, {b} 합계는 {a+b}')

etc-image-3

하지만 풀이에는 map 함수를 사용하였는데요.

 

map 함수는 map(function, iterable)의 용법으로 사용이 가능한데요.

 

함수, 그리고 변환할 값을 넣게 됩니다.

 

이 함수의 경우 람다를 이용해서 별도로 만들지 않고도 사용이 가능한데요.

# 함수 이용
def mul(x):
    return x * 2


result1 = list(map(mul, [5, 4, 3, 2, 1]))
print(f"map(함수, 리스트) : {result1}")

# 람다 함수 이용
result2 = list(map(lambda x: x * 2, [5, 4, 3, 2, 1]))
print(f"map(람다함수, 리스트) : {result2}")

이를 실행해보면 실제로 입력값을 2배씩 한 것을 출력하는 것을 알 수 있습니다.

etc-image-4

정답지에는 split함수도 사용하여서 입력값을 분리하였는데요.

 

즉 2개의 입력값을 빈칸으로 나눠서 정수 a,b로 저장하고 

 

그 a+b를 출력하라는 것입니다.

a, b = map(int, input().split())
print(a+b)

이렇게 깔끔하게 한줄로 풀이가 가능한데요.

 

앞으로도 프로그래밍을 할때 길게 함수를 만들지 않고 이런 방식으로 짧게 코딩할 수 있습니다.