생각보다 엄청 애먹은 문제다. 애먹은 이유는 문제의 입력부분 때문이다.
"첫째 줄에 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()의 요소들을 모두 정수로 바꾸어주는 역할을 한다.
'알고리즘 테스트 > 백준 문제풀이 및 해설' 카테고리의 다른 글
<백준 문제번호: 1330번> 파이썬 - 두 수 비교하기 (0) | 2020.10.12 |
---|---|
<백준 문제번호: 2884번> 파이썬 - 알람 시계 (0) | 2020.10.12 |
<백준 문제번호: 10718>파이썬 - We love kriii (0) | 2020.01.17 |
<백준 문제번호: 10171> 파이썬 - 고양이 (0) | 2020.01.17 |
<백준 문제번호: 2557>파이썬 - Hello World (0) | 2020.01.17 |