N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오.
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
입력으로 주어진 숫자 N개의 합을 출력한다.
n = int(input())
num = int(input())
nums = [int(i) for i in str(num)]
print(sum(nums))
문제보고 하나씩 쪼갠 뒤에 리스트형에 넣어 더해야겠다고 생각했다.
따라서 list comprehension을 이용해서 코드를 짰는데, 나중에 서치하고 보니까 너무 어렵게 생각한것 같기도 하다. (정석풀이 뒤에 참조)
세번째 줄이 list comprehension을 쓴 것인데
list comprehension 기법이란 리스트를 초기화하는 방법 중에 하나이다.
대괄호 [] 안에 조건문과 반복문을 사용할 수 있다!
보면 직관적으로 느끼겠지만 num을 str으로 변환해서(숫자열을 하나씩 쪼개기위함) 하나씩 int형으로 변환해 list로 넣어줬다.
왜 이렇게 했는가?
일단 그냥 list형으로 input 받으면 한개씩 '문자열' 처리된다.
그렇다고 list(int,input())으로 받으면 2개의 원소가 필요하다고 오류나버린다..
따라서 나중에 sum을 할 때 int형으로 변환시켜줘야하기에 list comprehension을 사용했다(근데 ..한줄이냐 두줄이냐 차이이다)
읽는 분들은 list comprehension 방법도 있다~ 정도만 알면 되지 않을까..
이 방법은 아무래도 문제가 요구한 풀이는 아닌 것 같 ㅜㅜ(답이 정해져있진 않겟지만)
#정석
a = int(input())
n = list(input())
sum = 0
for i in n:
sum += int(i)
print(sum)