[프로그래머스] 내적 (Python)

TK·2023년 11월 13일

문제 설명

길이가 같은 두 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의 길이)

제한사항

  • a, b의 길이는 1 이상 1,000 이하입니다.
  • a, b의 모든 수는 -1,000 이상 1,000 이하입니다.

입출력 예

ab
[1,2,3,4][-3,-1,0,2]
[-1,0,1][1,0,-1]

입출력 예 설명

  • 입출력 예 #1
    a와 b의 내적은 1(-3) + 2(-1) + 30 + 42 = 3 입니다.

  • 입출력 예 #2
    a와 b의 내적은 (-1)1 + 00 + 1*(-1) = -2 입니다.


내가 푼 답

def solution(a, b):
    answer = 0
    for i in range(len(a)):
        answer += (a[i]*b[i])
    return answer

정답 풀이1 (내장함수 zip)

def solution(a, b):
    return sum([x*y for x, y in zip(a,b)])

zip은 두 개의 리스트를 서로 묶어줄 때 사용합니다.

name = ['merona', 'gugucon']
price = [500, 1000]
z = zip(name, price)
print(list(z))

아래와 같이 나타납니다.

[('merona', 500), ('gugucon', 1000)]

zip을 사용하면 다음과 같이 두 리스트에 대해서 하나의 for 문으로 싶게 사용할 수 있습니다.

name = ['merona', 'gugucon']
price = [500, 1000]
for n, p in zip(name, price):
    print(n, p)

출처: https://wikidocs.net/92539

profile
쉬운게 좋은 FE개발자😺

0개의 댓글