내적

우창민·2023년 11월 29일
0

문제 설명

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

풀이

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(); 
        }
    }

What is Zip in LinQ?

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);


Reference

https://itiformation.tistory.com/entry/LINQ-Zip-%EC%82%AC%EC%9A%A9%EB%B2%95

profile
더 편하게 더 간단하게

0개의 댓글