티스토리 뷰

210701 내적구하기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

내적구하기

문제 설명

  • 길이가 같은 두 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 이하입니다.

=========================================================================================================================

이 문제는 너무 간단하여 풀고 올릴까를 한참 고민했습니다.

먼저 내적은 성분끼리의 곱의 합입니다. 배열에서 같은 인덱스의 값끼리 곱해서 더하면 됩니다.

파이썬에서 제공하는 식에서 행렬의 곱은 두 가지가 있습니다.

두 배열을 a, b라 할 때

첫 번째, 모양이 같은 행렬(배열)을 곱하면(a*b) 인덱스가 같은 요소별로 곱해집니다.

그럼 이 값들을 모두 더하면 내적과 같은 결과가 됩니다.

두 번째는 행렬의 곱, 다시 말해 앞의 행의 열의 개수와 뒤에 곱해지는 행렬의 행의 개수가 같아져서 곱해지는 것입니다.

이 경우는 np.dot(a, b) 또는 a.dot(b)의 형태로 구할 수 있습니다.

이 문제는 첫 번째 곱으로 구하면 되는 아주 간단한 문제입니다.

단, 출력되는 형태만 맞춰주면 됩니다.

In [8]:
import numpy as np

a = [1, 2, 3]
b = [2, 4, 6]

print(np.array(a) * np.array(b))
print(sum(np.array(a) * np.array(b)))
[ 2  8 18]
28
In [ ]:
 

제출된 코드입니다

In [5]:
def solution(a, b):
    import numpy as np

    answer = int(sum(np.array(a) * np.array(b)))
    
    return answer
In [6]:
print(solution(a, b))
28
In [ ]:
 
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함