for문 중첩해서 돌리는 것 방법밖에 생각이 안난다.😰😰😰
class Solution {
fun solution(a: IntArray, b: IntArray): Int {
var answer: Int = 0
for((i, a) in a.withIndex()){
for((ii,b)in b.withIndex()){
if(i == ii) answer += (a * b)
}
}
return answer
}
}
내적
: 두 서열의 상응하는 값들의 곱을 더한 것
다른 사람 풀이
class Solution {
fun solution(a: IntArray, b: IntArray): Int = a.mapIndexed { index, it -> it * b[index] }.sum()
}
인덱스로 바로 꺼내오는걸 왜 생각못했을까 😒😒😒😒😒
다른 사람 풀이 2
class Solution {
fun solution(a: IntArray, b: IntArray): Int {
return a.zip(b).map { it.first * it.second }.sum()
}
}
zip()
: 두 List 를 동일한 Index 끼리 묶어준다.
두 List 의 사이즈가 다른 경우 사이즈가 더 적은 리스트만큼의 크기로 나온다.
val a = listOf(1,2,3,4) // 1, 2, 3, 4, 5, 6
val b = listOf("a", "b", "c", "d") // a, b, c, d
val ba = b.zip(a){b, a -> b+a} // a1, b2, c3, d4
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 문자열 내림차순으로 배치하기 | Kotlin (0) | 2024.01.05 |
---|---|
프로그래머스 | 약수의 개수와 덧셈 | Kotlin (1) | 2024.01.05 |
프로그래머스 | 수박수박수박수 | Kotlin (1) | 2024.01.03 |
프로그래머스 | 가운데 글자 가져오기 | Kotlin (1) | 2024.01.02 |
프로그래머스 | 없는 숫자 더하기 (0) | 2023.12.28 |