
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.
이때, a와 b의 내적은 a[0]b[0] + a[1]b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)
def solution(a, b):
return sum([i*j for (i,j) in zip(a,b)])
zip 함수를 사용해 간단하게 작성했다.
a = [1, 2, 3]
b = [4, 5, 6]
for value in zip(a,b):
print(value)
위 코드의 실행 결과는 다음과 같다. 튜플이 반환된다.
(1, 4)
(2, 5)
(3, 6)
하나의 루프로 배열 두 개의 값에 접근했다. 여러 개의 순회 가능한 객체를 하나의 루프로 동시에 접근할 수 있기 때문에 굉장히 유용하다.
solution = lambda x, y: sum(a*b for a, b in zip(x, y))
def를 이용한 일반 함수가 아닌 람다 함수로 작성한 풀이다.
진정한 1줄이다..
람다 함수는 lambda 키워드를 사용해 정의하며, 간단한 함수를 표현할 때 주로 사용한다.
lambda 매개변수1, 매개변수2, ... : 표현식
매개변수를 받고, 표현식에서 이 매개변수들을 이용해 어떤 연산을 수행한다.