Algorithm/BaekJoon

백준 2021.10.26. 11720 - 숫자의 합

HappyFrog 2021. 10. 26. 20:49

 

VSC에서는 구동되는데 런타임 에러가 나서 다시풀고 있다.

N = int(input())

num = ""
for i in range(N):
    num += input()

result = 0
for i in num:
    result += int(i)

print(result)

 

아. 한줄씩 입력받는게 아니라 입력한 자리수 만큼의 숫자를 한꺼번에 입력받는 형식이었다.

 

N = int(input())

num = list(map(int, input()))

result = 0
for i in num:
    result += int(i)

print(result)

리스트를 int형식으로 매핑받아 생성하는 식으로 고치니 해결되었다.

하지만 의문은 문제에서 1번째에 자연수 N을 입력하고 N자리 수의 숫자를 2번째에 입력한다고 했는데, 2번째 입력때 입력할 수 있는 자릿수제한을 할 수 없었을까? 하는 의문이 든다.

 

N = int(input())

num = list(map(int, input()))
if len(num) > N:
    for i in range(len(num) - N):
        num.pop()
        
result = 0
for i in num:
    result += int(i)
    
print(num)
print(result)

그래서 리스트의 pop메서드를 통해 추가입력받은 숫자들은 버리는 방식으로 구현하기로 했다.

 

  1. 숫자의 자릿수 N을 입력하고
  2. N자리숫자를 입력받는다
    1. 이 때, N자리 숫자를 초과한다면 초과한만큼 리스트의 끝 인덱스부터 제거하기 시작한다.
  3. 그리고 리스트의 요소들을 모두 더하여 출력해준다.

▲ 결괏값 // 5를 입력한 뒤 6자리 수를 입력했지만 조건문에서 걸려져서 리스트의 마지막인 1은 pop메서드로 제거된 모습이다.