[프로그래머스] Lv. 1 내적(Kotlin)

hxeyexn·2023년 4월 12일
0

[프로그래머스] Lv. 1

목록 보기
20/26
post-thumbnail

내적

문제 설명

길이가 같은 두 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 {
    fun solution(a: IntArray, b: IntArray): Int {
        var answer: Int = 0
        
        //for(i in a.indices)
        for(i in 0..a.count()-1) {
            answer += a[i] * b[i]
        }
        
        return answer
    }
}
  • indices
    val <T> Array<out T>.indices: IntRange
    val Collection<*>.indices: IntRange
    : 유효한 인덱스들의 범위를 리턴

다른 사람 풀이

class Solution {
	fun solution(a: IntArray, b: IntArray): Int {
    	return a.zip(b).map { it.first * it.second }.sum()
    }
}     
  • zip
    infix fun <T, R> Iterable<T>.zip( other: Array<out R> ): List<Pair<T, R>>
    : 두 개의 Iterable를 조합해 각 원소를 순서대로 Pair로 만들어, List<Pair<T, R>>로 만드는 확장함수

  • map
    inline fun <R, T> Result<T>.map( transform: (value: T) -> R ): Result<R>
    : 수식을 적용하여 값 변경하여 반환

profile
Android Developer

0개의 댓글