본문 바로가기

programmers-코딩테스트 연습/Level 1. 자바

2021-06-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의 길이)

 

제한사항

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

입출력 예

 

a b result
[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 입니다.

초기 코드

class Solution {
    public int solution(int[] a, int[] b) {
        int answer = 1234567890;
        return answer;
    }
}

정답 코드

더보기
class Solution {
    public int solution(int[] a, int[] b) {
        int answer = 1234567890;
        answer=0;
        for(int i=0; i<a.length; i++)
            answer+=a[i]*b[i];
        return answer;
    }
}

 

코드 설명

answer의 초기값이 1234567890으로 되어있다. 이대로 진행할 경우 값은 의도한 바와 전혀 다르게 나온다. 그래서 answer를 0으로 바꿔준다.

조건을 보면 a와 b의 길이는 같다. 그래서 반복문을 둘 중 하나의 길이로 하면 된다. 자바에서 배열의 길이를 구하는 방법은 arr.length 형식이다.

내적은 a의 원소값과 b의 원소값을 곱하고, 그 곱한 값이 answer에 누적되는 것이다. 

 

 

 

 

코딩테스트 연습 - 내적

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

programmers.co.kr