Python 홀수만 더하기

냐항·2021년 8월 1일

10개의 수를 입력 받아, 그 중에서 홀수만 더한 값을 출력하는 프로그램을 작성하라.

[제약 사항]

각 수는 0 이상 10000 이하의 정수이다.

[입력]

가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 번째 줄에는 10개의 수가 주어진다.

[출력]

출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.

(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)

a = int(input())
b = input().split()

ans = 0
for k in range(1, a+1):
    for i in b:
        if int(i) % 2 :
            ans += int(i)
           
    print(f'#{k} {ans}')
3
3 17 1 39 8 41 2 32 99 2
#1 200
#2 400
#3 600

이것은 나의 틀린 답.
input을 항상 제일 먼저 받아야한다고만 생각했다.
이럴 때 map함수를 써야하구나!!


a = int(input())

for i in range(1, a+1):
    total = 0
    for k in list(map(int, input().split())):
        if k % 2:
            total += k
    print(f'#{i} {total}')
3
3 17 1 39 8 41 2 32 99 2
#1 200
22 8 5 123 7 2 63 7 3 46
#2 208
6 63 2 3 58 76 21 33 8 1   
#3 121

젤 위에 a의 range로 for문을 걸어놓으면 그 범위 만큼 for문이 반복되며 input()도 반복 횟수만큼 받는다.

또한 total = 0은 꼭 for문 안에 있어야 한다.
for문 밖에 있다면 input( )이 누적되어 더해진다.
즉 반복 횟수 동안에 받은 모든 input을 다 더해버린다.

split( ) 꽤나 헷갈렸는데 유용하군

0개의 댓글