<aside> 💬 lv0, 요구사항 구현

더하기

문제 설명

주어진 리스트 내에 홀수를 찾아 합을 반환하는 solution 함수를 완성해주세요.


제한 사항


입출력 예

입력 출력
[1, 2, 3, 4, 5] 9
[3, 5, 7, 1] 16

입출력 설명

[1, 2, 3, 4, 5] 중에서 홀수는 [1, 3, 5]입니다. 이 숫자를 모두 더하면 9가 됩니다.

</aside>

😺 풀이 1. 조건부 필터링

def solution(data): **#1 함수정의**
		return sum(filter(lambda x: x% 2, data)) **#2 조건에 맞는 요소 필터링**

단계별 풀이 전략

  1. 함수 정의

    코드의 첫 부분에서 solution이라는 함수를 정의합니다. 이 함수는 하나의 인자 data를 받습니다. data는 홀수 값을 찾을 대상이 되는 리스트입니다.

  2. 조건에 맞는 요소 필터링

    1. filter 함수는 첫 번째 인자로 전달된 함수(여기서는 람다 함수)의 결과가 참(True)인 경우에만 두 번째 인자로 전달된 iterable(여기서는 리스트 data)의 요소를 반환합니다.
    2. 여기서 람다 함수 lambda x: x % 2는 주어진 값 x가 홀수인지를 검사합니다. 만약 x % 2가 0이 아니라면(즉, 홀수일 경우), 해당 값은 유지됩니다.
    3. filter 함수의 결과는 홀수 값들로 이루어진 iterable이며, 이를 sum 함수를 사용하여 합산합니다.
    4. 최종적으로 계산된 합계값이 함수의 반환값으로 지정됩니다.

알아둬야 할 개념

lambda 함수

풀이 2. 리스트 컴프리헨션

def solution(data): **#1 함수정의** 
    return sum([i for i in data if i % 2 != 0]) **#2 리스트 컴프리헨션 사용하여 필터링**

단계별 풀이 전략

  1. 함수 정의

    코드의 첫 부분에서 solution이라는 함수를 정의합니다. 이 함수는 하나의 인자 data를 받습니다. data는 홀수 값을 찾을 리스트 입니다.

  2. 리스트 컴프리헨션을 사용하여 홀수 값 필터링

    1. 이 부분은 리스트 컴프리헨션을 사용하여 주어진 리스트 data에서 홀수 값을 필터링하는 부분입니다. 여기서 idata 리스트의 각 요소를 의미합니다. if i % 2 != 0 조건은 해당 요소가 홀수 인지를 검사합니다. 만약 홀수라면 리스트에 포함됩니다.

    2. 홀수 값들의 합 계산

      위에서 구한 홀수 값들의 리스트를 sum 함수를 사용하여 모두 더합니다. 이를 통해 홀수 값들의 총 합을 얻을 수 있습니다.

    3. 결과 반환

      최종적으로 계산된 합계값이 함수의 반환값으로 지정됩니다.

알아둬야 할 개념

리스트 컴프리헨션