11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
list(map(int, input()))을 써서 입력을 받았는데, 1. list관련하여 정확한 지식이 없고 단지 입력 받기에만 초점을 두어 공부했었어서 긴가민가했었다. 또한 2. sum(i) 부분에서 오류가 났었는데 왜 그런지 이유를 살펴보고 정답을 봐보자.
내가 작성한 코드
N = int(input())
M = list(map(int, input()))
ans = 0
for i in M :
ans = sum(i)
print(ans)
1. M = list(map(int, input()))
사용자로부터 입력된 문자열을 공백 없이 연속된 숫자로 받아들여서, 각 숫자를 정수로 변환한 후 리스트에 저장한다.
예로, 사용자가 "12345"라는 문자열을 입력했다면, 'M'에는 [1,2,3,4,5]라는 리스트가 저장되는 것이다.
따라서 각 요소는 사용자가 입력한 문자열의 각 숫자를 나타낸다.
2. 파이썬 내장함수 sum
파이썬의 내장 함수 sum()은 반복 가능한(iterable) 객체의 요소들의 합을 계산하여 반환한다.
'내가 작성한 코드'에서 오류가 났던 이유는 for 문을 통해 M의 각각의 요소(i)에 접근한 숫자는 iterable객체가 아닌 단일 숫자이기에 타입에러가 발생했던 것이다.
정답 코드
# 수정본
N = int(input())
M = list(map(int, input()))
ans = sum(M)
print(ans)