nums라고 하는 n개의 요소를 가진 리스트가 있다고 가정해 보겠습니다. 우리가 해야 할 일은 이 리스트에서 모든 홀수 요소의 합을 구하는 것입니다.
예를 들어, 입력이 다음과 같다면:
nums = [5,7,6,4,6,9,3,6,2]
출력은 24가 됩니다. 그 이유는 홀수인 요소들이 5, 7, 9, 3이며, 5+7+9+3 = 24이기 때문입니다.
문제 해결 접근 방식
이 문제는 파이썬의 리스트 컴프리헨션(list comprehension)을 활용하면 매우 간결하게 해결할 수 있습니다. 해결 과정은 다음과 같습니다.
- 리스트 컴프리헨션을 사용하여 nums의 모든 요소 e 중에서 홀수인 값만 추출해 새로운 리스트 l을 만듭니다.
- 추출된 리스트 l을 내장 함수 sum()에 전달하여 모든 홀수 요소의 합을 계산한 뒤 반환합니다.
구현 예제
아래 코드를 통해 실제 구현 방법을 확인해 보겠습니다.
def solve(nums): return sum([i for i in nums if i % 2 == 1]) nums = [5,7,6,4,6,9,3,6,2] print(solve(nums))
입력
[5,7,6,4,6,9,3,6,2]
출력
24
코드 설명
핵심 로직은 [i for i in nums if i % 2 == 1] 부분입니다. 이 표현식은 리스트 nums를 순회하면서 각 요소 i를 2로 나눈 나머지가 1인 경우, 즉 홀수인 경우에만 해당 값을 새로운 리스트에 담습니다. 이후 sum() 함수가 이 리스트의 모든 값을 더하여 최종 결과를 반환합니다.
참고로 음수 홀수까지 처리해야 한다면 조건을 i % 2 != 0으로 바꾸면 더 안전하게 동작합니다. 또한 한 줄짜리 람다 함수나 filter() 함수를 사용하는 방법도 있지만, 리스트 컴프리헨션이 가독성과 성능 면에서 가장 널리 사용되는 방식입니다.