본문 바로가기
Language/Java

[Programmers | Java | 월간 코드 챌린지 시즌1 문제 풀이] 내적 - Solution with Loop & Operator 또는 Stream API

by ㅇ달빛천사ㅇ 2024. 6. 27.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기  |  Algorithm CODEKATA

📐 내적

 

🏷 관련 주제 : Array Math Inner Product



✔ Solution with Loop & Operator

class Solution {
    public int solution(int[] a, int[] b) {
        int answer = 0;
        
        for (int i = 0; i < a.length; i++) {
            answer += a[i] * b[i];
        }
        
        return answer;
    }
}
채점 결과

✔ Solution with Stream API

import java.util.stream.IntStream;

class Solution {
    public int solution(int[] a, int[] b) {
        int answer = IntStream.range(0, a.length).map(i -> a[i] * b[i]).sum();
        
        return answer;
    }
}
채점 결과

 

 

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

📌 오늘 만난 문제 : 주어진 두 정수 배열 a, b의 같은 인덱스 원소끼리 곱한 후, 그 총합을 반환하시오.


 

반복문을 돌며 정수 배열 a와 b의 인덱스 i의 원소끼리 합한 결과를 총합을 담을 변수 answer에 담아 반환하여 문제를 풀었다.

for (int i = 0; i < a.length; i++) {
    answer += a[i] * b[i];
}

 

그리고 Stream API로도 문제를 풀어보았다.

IntStream.range()를 0 ~ a.length로 두고 map을 이용하여 정수 배열 a와 b의 인덱스 i의 원소끼리 곱한 결과를 sum()으로 모두 합한 후, 반환함.

int answer = IntStream.range(0, a.length).map(i -> a[i] * b[i]).sum();

 

💬 무엇을 새롭게 알았는지

오늘은 내적과 관련된 문제를 풀어보았다.

 


📚 References(참고 자료)

 

 

 

 

스파르타코딩클럽, 항해99, 99클럽, Java, 비기너, 프로그래머스,코딩테스트 스터디, 개발자 취업

728x90


Top