문제 요구사항
문제 설명
길이가 같은 두 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 이하입니다.
풀이
class Solution {
public int solution(int[] a, int[] b) {
int answer = 0;
//어느 한 배열의 길이만큼(a.length) 반복하여
for(int i = 0;i<a.length;i++){
//1부터 n번째 인덱스 간의 곱을 누적한다
answer += a[i] * b[i];
}
return answer;
}
}
모범답안 1
import java.util.stream.IntStream;
class Solution {
public int solution(int[] a, int[] b) {
return IntStream.range(0, a.length).map(index -> a[index] * b[index]).sum();
}
}
모범답안 2
class Solution {
public int solution(int[] a, int[] b) {
int sum = 0;
for(int i=0;i<a.length;i++){
sum+= a[i]*b[i];
}
return sum;
}
}
실패 요인
인사이트
배열은 문자열과 달리 가변 객체이나, 그 길이가 불변이다.
따라서 원소뿐만 아니라 길이까지 변경이 필요한 경우엔 리스트를 사용한다.
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/70128
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'Algorithm' 카테고리의 다른 글
| [알고리즘] 문자열 내림차순으로 배치하기 (0) | 2026.01.29 |
|---|---|
| [알고리즘] 약수의 개수와 덧셈 (0) | 2026.01.29 |
| [알고리즘] 수박수박수박수박수박수? 문제 풀이 (0) | 2026.01.28 |
| [알고리즘] 콜라츠 추측 (0) | 2026.01.22 |
| [알고리즘] 두 정수 사이의 합 (0) | 2026.01.21 |