1. 문제
- 두 정수 A와 B를 입력 받은 다음, A + B를 출력하시오.
2. 출제의도 파악하기
- 입력 받기 → input()
- ' + ' 연산자 사용
- 아무튼 더할 것.
3. 풀이
- 필요한 함수들
- input() : 입력 받을 수 있는 함수로 이때 입력 받은 자료형은 '문자열'이다.
- split() : 문자열을 나눈다.
- map() : 리스트의 요소를 한꺼번에 변환해준다.
- int() : 숫자나 문자열을 정수형으로 변환
입력값을 살펴보면,
두 문자열(정수) 사이에 공백이 포함되어 입력 받게 된다.
두 수는 공백을 기준으로 분리한다.
이때 split() 괄호 안에 아무 것도 넣지 않으면 공백을 기준으로 문자열을 나누게 된다.
그리고 map()은 (변환할 타입 함수, 변환할 리스트)를 파라미터 값으로 갖는 함수다.
map(int, 변환할 리스트)로 쓰기로 한다.
a, b = map(int, input().split())
print(a + b)
- input(),split() 이 왜 리스트일까?
일단, 문자열은 인덱스를 갖기 때문에 리스트처럼 쓰인다. 따라서 map()의 2번째 파라미터 값으로 올 수 있다.
a, b = input().split()
print(a + b)
a와 b는 문자열이다.
출력 값은 아래에서 확인한다.
a, b = input().split()
print(int(a) + int(b))
위의 코드와 다른 점은 각 변수에 int()로 변환해준 것이다.
4. 남의 버전 분석
print(sum(map(int, input().split())))
- sum() : 요소들이 숫자로 이루어진 리스트나 튜플의 모든 요소를 더하는 함수.
사실 type(map(int, input().split()))을 해보면, 자료형이 map으로 나온다.
그리고 map(int, input().split())을 확인해보면 알 수 없는 글자들이 나온다.
map()은 리스트의 모든 요소를 한꺼번에 형변환해주는 함수이기때문에 리스트가 리스트일 수 밖에 없다.
print(eval('+'.join(input())))
- eval() : 매개변수로 받은 표현식을 문자열로 받아 실행하는 함수
표현식은 파이썬에서 실행 가능한 문자열이어야 한다. (참고: https://blockdmask.tistory.com/437 [개발자 지망생])
문자열을 입력 받고 ' + ' 결합된다. 그리고 eval() 함수로 문자열로 표현된 표현식이 실행 된다.
5. 출력 확인
'백준' 카테고리의 다른 글
백준 10998 A × B 파이썬 (0) | 2022.02.04 |
---|---|
백준 1001 A - B 파이썬 (0) | 2022.02.03 |
백준 10172 개 파이썬 (0) | 2022.01.24 |
백준 10171 고양이 파이썬 (0) | 2022.01.24 |
백준 10718 We love kriii (0) | 2022.01.23 |