문제풀이
def solution(a, b):
answer = 0
for idx in range(len(a)):
answer += a[idx] * b[idx]
return answer
알고리즘
다른 사람 풀이 중 더 깔끔하게 푼 해결점이 있어서 여기에 사용된 zip()에 대해 알아본다.
zip()
zip() 메서드는 2개 이상의 시퀀스(문자열, 튜플, 리스트, 바이트 배열, 바이트 등)를 인수로 취하여, 짧은 길이의 시퀀스를 기준으로 각 항목이 순서대로 1:1 대응하는 새로운 튜플 시퀀스를 만든다.
파이썬 3부터는 zip() 등의 결과가 객체로 반화되므로 내용을 확인하려면 list로 형 변환을 해야한다.
예를 들어
>>> a =[1, 2, 3, 4, 5]
>>> b = ['a', 'b', 'c', 'd']
>>> zip(a,b)
<zip object at 0x00000294A6E42A40>
>>> list(zip(a,b))
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
출처
문제: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges