[프로그래머스 / Python] 내적

Kaylee·2023년 9월 17일

programmers

목록 보기
1/6
post-thumbnail

문제 설명

길이가 같은 두 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 함수를 사용해 간단하게 작성했다.

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, ... : 표현식

매개변수를 받고, 표현식에서 이 매개변수들을 이용해 어떤 연산을 수행한다.

0개의 댓글