안경잡이 구루루

백준 11720 ( 숫자의 합 ) [ Python ] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 11720 ( 숫자의 합 ) [ Python ]

구루루(gururu) 2020. 6. 30. 15:17
반응형


나(방법1):

N= int(input())
num = input()
add=0

if N == len(num):
    for i in range(len(num)):
        add += int(num[i])
print(add)

완성된 코드는 위와 같다.

 

N= int(input())
num = input()
add=0

숫자의 개수를 나타내는 변수 N을 정수형으로 입력받는다.  num 공백없이 나타낼 수로 문자형으로 받는다.

add는 num의 수가 더해진 최종값이 들어갈 변수로 0으로 초기화 한다.

 

if N == len(num):
    for i in range(len(num)):
        add += int(num[i])
print(add)

숫자의 개수를 나타낸 N과 입력받은 num의 개수가 참일 때 for 반복문을 이용해 값을 더해나가는 부분이다.

즉, for반복문으로 문자로 입력받았던 num의 길이만큼 배열을 이용해서 한자리씩 add에 더해나간다.

이때 10이나 11같이 1자리를 넘는 수의 대해서는 어떻게 처리하는지 궁금할 수 도 있지만 예제를 살펴보면 이 생각이 잘못됨을 알 수 있다.

예제입력 4를 보면 알 수 있듯이 1의 자리와 2의 자리는 구분하지 않고 1자리씩만 숫자로 취급한다는것을 알 수 있다.

결국 최종값인 add를 출력한다.

 


다른사람:

https://gabii.tistory.com/entry/BaekJoonPython3-%EB%B0%B1%EC%A4%80-11720%EB%B2%88-%EC%88%AB%EC%9E%90%EC%9D%98-%ED%95%A9

sum = 0
inp = int(input())
num = input()
for each in num:
        sum += int(each)
print(sum)

완성된 코드는 위와 같다.

이 코드를 보고 다시 알게 된 점은 for 반복문은 어짜피 이 자체로 num 의 요소 하나씩을  each 에 돌려주기 때문에

나처럼 배열을 구지 이용할 필요없었다는 점이다.

반응형