본문 바로가기
프로그래머스 Algorithm

[프로그래머스] 내적 Kotlin

by Echung 2023. 11. 24.

안녕하세요. 이번에는 프로그래머스 내적 문제를 풀어보려고 합니다.

 

https://school.programmers.co.kr/learn/courses/30/lessons/70128


Problem

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

사진 1. 입출력 예

Solution

class Solution {
    fun solution(a: IntArray, b: IntArray): Int {
        var answer: Int = 0

        for(i in a.indices){
            answer += a[i] * b[i]
        }

        return answer
    }
}

 이번 문제는 for문을 사용해서 내적을 구하였습니다.

 

1. 다른 사람 코드

class Solution {
    fun solution(a: IntArray, b: IntArray): Int {
        return a.zip(b).map { it.first * it.second }.sum()
    }
}

  for문으로도 풀 수 있는 문제지만 다른 사람의 풀이가 궁금해서 공부를 해보았습니다. 여기서는 zip() 함수를 이용해서 접근하였습니다. zip() 함수는 두 개의 Collection을 합쳐서 Pairs (두 개의 값을 가진 Kotli의 클래스)를 가진 새로운 Collection을 반환하는 함수입니다.  한 줄로 이루어진 코드라서 가독성이 향상된 코드입니다.


Performance

1. 내가 작성한 코드 2. 다른 사람 코드
반응형