길이가 같은 두 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의 길이)
using System;
public class Solution {
public int solution(int[] a, int[] b) {
double answer = 0;
int length = a.Length;
for(int i = 0 ;i<length ; i ++){
answer +=(a[i]*b[i]);
}
return (int)answer;
}
}
using System;
using System.Linq;
public class Solution
{
public int solution(int[] a, int[] b)
{
return a.Zip(b, (t1, t2) => t1 * t2).Sum();
}
}
Zip의 경우 데이터 컬렉션(List, Array, Dictionary)의 각각의 요소를 병합할 때 사용됩니다. 다른 형태의 컬렉션도 타입이 맞는다면 병합이 가능합니다.
특이사항으로는 Concat와 다른점은 각각의 시퀀스(순번)가 맞는 요소간의 병합만 가능하다.
Overloading
Zip<TFirst,TSecond,TResult>(IEnumerable, IEnumerable, Func<TFirst,TSecond,TResult>)
Zip<TFirst,TSecond>(IEnumerable, IEnumerable)
두 배열의 값을 시퀀스 끼리 더 할때
array.zip(otherarray, (a1,b1) => a1+b1);
https://itiformation.tistory.com/entry/LINQ-Zip-%EC%82%AC%EC%9A%A9%EB%B2%95