출처: https://meyouus.tistory.com/64 [정보 공유 - For Me For You For Us]
본문으로 바로가기

 

생각보다 엄청 애먹은 문제다. 애먹은 이유는 문제의 입력부분 때문이다.

"첫째 줄에 A 와 B가 주어진다. (0 < A, B < 10)

 

첫째줄에 어떻게 A와 B를 동시에 입력하는가가 나의 의문이었다. 파이썬을 아직 숙련되게 다룰 수 있는 수준이 아닌지라 이리저리 찾아보고 해봤다. 일단 풀이는 다음과 같다.

 

A, B = map(int, input().split())
input = '1 2'
print(A+B)

 

여기서 map, .input().split() 둘 다 헷갈릴 것 같다. 따라서 map()과 input().split()을 설명을 해보도록 하겠다.

 

map은 리스트의 요소를 지정된 함수로 처리해주는 역할을 한다. 즉, map은 원본 리스트를 변경하지 않고 새 리스트를 만들 수 있다.

 

가령 실수가 저장된 리스트를 정수로 변환하는 예를 들어보자.

>>> a = [1.4, 2.3, 3.3, 4.1, 5.8, 6.3]
>>> for i in range(a):
>>>	a[i] = int(a[i])
...
>>> a
[1, 2, 3, 4, 5, 6]

 

for 문을 사용하면 간단하게 처리되는가 싶다. 하지만 이보다 더 간단하게 처리할 수 있다. map을 사용한다면.

>>> a = [1.4, 2.3, 3.3, 4.1, 5.8, 6.1]
>>> a = list(map(int, a))
>>> a
[1, 2, 3, 4, 5, 6]

보았듯이 map을 사용하여 각각의 a 값에 int 를 씌어준다면 굳이 for문을 사용하지 않고도 정수의 문자열들로 이루어진 리스트로 바꿀 수 있다.

 

input().split()은 간단하게 말해 여러개의 값을 입력받을 수 있게 해주는 역할을 한다. 이 input().split()을 사용하면 문자열의 리스트를 만들어주게 된다. 따라서 이에 map을 사용할 수 있게 되어, 우리가 앞서 바라본 map(int, input().split())을 사용할 수 있게 된다. int 같은 경우에는 map 안에 있는데 input().split()의 요소들을 모두 정수로 바꾸어주는 역할을 한다.