Lv1. 내적

Hello·2022년 7월 25일
0

코딩테스트 연습 > 내적

1. 풀이 설명

list a와 b에서 같은 index의 아이템들끼리 곱한 후, 전체 합을 구하여 반환한다.

2. 나의 풀이

python

def solution(a, b):
    return sum([a[i] * b[i] for i in range(len(a))])

kotlin

fun solution(a: IntArray, b: IntArray): Int =
    (0 until a.size).map { a[it] * b[it] }.sum()

3. 배운점

python

  1. 내장 함수zip(*iterable)을 사용하여 동일한 개수로 이루어진 iterable 자료형 변수를 묶어 사용하자.
list(zip([1, 2, 3], [4, 5, 6], [7, 8, 9]))  # [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
list(zip("abc", "def"))						# [('a', 'd'), ('b', 'e'), ('c', 'f')]
  1. 코드
def solution(a, b):
	return sum([x * y for x, y in zip(a,b)])

kotlin

  1. list1.zip(list2) 함수로 2개의 리스트를 묶을 수 있다. 동일한 index 끼리 묶이므로 size가 다르다면, 작은 크기까지만 반환된다: List<Pair<A, B>>

  2. 코드

fun solution(a: IntArray, b: IntArray): Int =
	a.zip(b).map { it.first * it.second }.sum()
profile
안녕하세요 :)

0개의 댓글