발자취

[프로그래머스 Lv.1 / C언어] Day44. 내적 본문

코딩테스트/Daily Coding (C, C++)

[프로그래머스 Lv.1 / C언어] Day44. 내적

해린 2024. 7. 17. 01:00

2024. 07. 17 - 코딩테스트 스터디 Day44

 
 

01. 문제 설명

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

 
 

02. 제한사항

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

 
 

03. 입출력 예

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

 

입출력 예 #1

  • a와 b의 내적은 1*(-3) + 2*(-1) + 3*0 + 4*2 = 3 입니다.

입출력 예 #2

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

 
 

04. 풀이 및 답

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// a_len은 배열 a의 길이입니다.
// b_len은 배열 b의 길이입니다.
int solution(int a[], size_t a_len, int b[], size_t b_len) {
    int answer = 0;
    
    for (int i = 0; i < a_len; i++) {
        answer += a[i] * b[i];
    }
    
    return answer;
}

아주 간단하게 풀 수 있었다.
계산 값을 넣어줄 변수 answer를 0으로 초기화한다.
배열 a와 배열 b의 길이가 서로 같기 때문에 a_len까지 반복문을 돌면서 a[i] * b[i] 계산을 한 값을 answer에 저장해 주면 된다.
 
 

정답!

 


야호 끝