Programming/SW Expert Academy

20210111 // 삼성 SW Expert 아카데미 문제 // 2072

껨코 2021. 1. 11. 16:31

삼성 SW Expert 아카데미 3503번 "홀수만 더하기" 문제입니다.

TC = int(input())
for tc in range(1, TC+1):
    oddsum = 0
    lst = list(map(int, input().split()))
    for ele in lst:
        if ele&1 == 1:
            oddsum += ele
    print("#%s"%tc, oddsum)

10개의 수를 입력받아서 그 중 홀수만 더학는 쉬운 문제다.

 

홀수를 판별하는 방법은 2로 나누었을 때 나머지가 1인 방법을 사용하는 것이 일반적이다.

 

하지만 나는 비트 연산자를 활용하여 1과 타겟 넘버를 and 비트 연산자를 사용했다.

 

이진수 비트 연산에서 0&1 = 0, 1&1 = 1 임을 활용하였는데 이는 논리 연산과도 비슷한 성질을 띤다.

 

어느 방법이든 정답은 나오기 때문에 원리만 이해한다면 풀 수 있는 문제라고 할 수 있다.