<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>
def solution(data):
return sum(filter(lambda x: x % 3 and x % 5, data)) **#1 조건에 맞는 요소 필터링**
lambda x: x % 3 and x % 5
: 이 부분은 람다 함수로, 주어진 숫자 x
가 3의 배수이거나 5의 배수가 이면 False를 반환합니다.(나머지가 0 이 나오기 때문) 여기서 and
연산자는 논리 AND를 나타냅니다.filter(lambda x: x % 3 and x % 5, data)
: data
리스트에서 위에서 정의한 조건을 만족하는 요소들로 이루어진 새로운 리스트를 생성합니다. 즉, 3의 배수이거나 5의 배수인 숫자들이 제외됩니다.sum(filter(lambda x: x % 3 and x % 5, data))
: 앞서 생성된 리스트의 합을 계산합니다. 이것이 최종적으로 반환되는 값입니다.sum
기본 형태: sum(순회 가능한 객체)
개념: sum
함수는 순회 가능한 객체
의 모든 요소들을 합산하여 반환합니다.
my_list = [1, 2, 3, 4, 5]
total = sum(my_list)
print(total) # 출력: 15
def solution(data):
return sum(i for i in data if i % 3 != 0 and i % 5 != 0) **#1 리스트 컴프리헨션과 조건**
if i % 3 != 0 and i % 5 != 0
이 조건식은 각 요소가 3의 배수이거나 5의 배수가 아닌 경우를 찾습니다. 즉, 3과 5로 나누었을 때 나머지가 모두 0이 아닌 경우를 의미합니다.(i for i in data if i % 3 != 0 and i % 5 != 0)
이 부분은 조건식을 만족하는 요소들로 이루어진 제너레이터(generator)입니다. 이 제너레이터는 필터링된 요소들을 차례대로 생성합니다.sum
함수를 사용하여 필터링된 요소들의 합을 계산합니다.반복문
기본 형태: for 변수 in 순회 가능한 객체
개념: for 문의 개념은 주어진 iterable의 요소를 하나씩 가져와서 반복하는 것입니다. 반복이 시작될 때 첫 번째 요소부터 시작하여 마지막 요소까지 차례대로 처리됩니다.
my_list = [1, 2, 3, 4, 5]
for num in my_list:
print(num) # 출려기 1, 2, 3, 4, 5