안녕하세요. 이번에는 프로그래머스 내적 문제를 풀어보려고 합니다.
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 이하입니다.
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. 다른 사람 코드 |
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 문자열 내림차순으로 배치하기 Kotlin (0) | 2023.11.26 |
---|---|
[프로그래머스] 약수의 개수와 덧셈 Kotlin (4) | 2023.11.25 |
[프로그래머스] 수박수박수박수박수박수? Kotlin (0) | 2023.11.23 |
[프로그래머스] 가운데 글자 가져오기 Kotlin (0) | 2023.11.22 |
[프로그래머스] 제일 작은 수 제거하기 Kotlin (0) | 2023.11.21 |