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

조건 덧셈

문제 설명

주어진 리스트에서 3과 5의 배수를 제외한 모든 수를 더하는 solution 함수를 완성해주세요.


제한 사항


입출력 예

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

입출력 설명

[1, 2, 3, 4, 5]에서 3과 5의 배수를 제외하면 [1, 2, 4]가 됩니다. 이 수를 모두 더하면 7이 됩니다.

</aside>

😺 풀이 1. filter 함수

def solution(data): 
    return sum(filter(lambda x: x % 3 and x % 5, data)) **#1 조건에 맞는 요소 필터링**

단계별 풀이 전략

  1. 조건에 맞는 요소 필터링
    1. lambda x: x % 3 and x % 5: 이 부분은 람다 함수로, 주어진 숫자 x가 3의 배수이거나 5의 배수가 이면 False를 반환합니다.(나머지가 0 이 나오기 때문) 여기서 and 연산자는 논리 AND를 나타냅니다.
    2. filter(lambda x: x % 3 and x % 5, data): data 리스트에서 위에서 정의한 조건을 만족하는 요소들로 이루어진 새로운 리스트를 생성합니다. 즉, 3의 배수이거나 5의 배수인 숫자들이 제외됩니다.
    3. sum(filter(lambda x: x % 3 and x % 5, data)): 앞서 생성된 리스트의 합을 계산합니다. 이것이 최종적으로 반환되는 값입니다.

알아둬야 할 개념

sum

풀이 2. 리스트 컴프리헨션과 조건문

def solution(data):
    return sum(i for i in data if i % 3 != 0 and i % 5 != 0) **#1 리스트 컴프리헨션과 조건**

단계별 풀이 전략

  1. 리스트 컴프리헨션과 조건
    1. if i % 3 != 0 and i % 5 != 0 이 조건식은 각 요소가 3의 배수이거나 5의 배수가 아닌 경우를 찾습니다. 즉, 3과 5로 나누었을 때 나머지가 모두 0이 아닌 경우를 의미합니다.
    2. (i for i in data if i % 3 != 0 and i % 5 != 0) 이 부분은 조건식을 만족하는 요소들로 이루어진 제너레이터(generator)입니다. 이 제너레이터는 필터링된 요소들을 차례대로 생성합니다.
    3. 마지막으로 sum 함수를 사용하여 필터링된 요소들의 합을 계산합니다.

알아둬야 할 개념

반복문