내적(Lv1. Swift)

Updated:

내적(Lv1. Swift)

🔍 문제

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

🔷 입출력 예

image

🔷 입축력 예 설명

입출력 예 #1

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

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


📌 풀이

길이가 같은 두 배열의 같은 인덱스에 해당하는 숫자들을 곱해주고 모든 값을 더해주면 된다

// 반복문 통한 기본 풀이
func solution(_ a:[Int], _ b:[Int]) -> Int {
		var result = 0
	for i in 0..<a.count {
		result += (a[i] * b[i])
	}

 return result
}

print(solution([1, 2, 3, 4], [-3, -1, 0, 2])) // 3
// zip, map, reduce 를 사용해서 풀이
func solution(_ a:[Int], _ b:[Int]) -> Int {
	return zip(a, b).map(*).reduce(0, +)
}

Reference

프로그래머스 - https://programmers.co.kr/learn/courses/30/lessons/70128

Categories:

Updated:

Leave a comment