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

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

 

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

 

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

 

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

 

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

백준 1000번 문제 풀이

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

 

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

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

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

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

 

출력은 아래와 같습니다.

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

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

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

하지만 풀이에는 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배씩 한 것을 출력하는 것을 알 수 있습니다.

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

 

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

 

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

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

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

 

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