반응형
문제 설명
길이가 같은 두 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 이하입니다.
출처 : programmers.co.kr/learn/courses/30/lessons/70128
풀이 방법
배열 a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 라고 하였으니 배열 a와 b의 인덱스 값을 이용하면 풀 수 있다.
또는 파이썬의 zip(*iterables)을 이용하여 풀 수 있다. zip()은 동일한 개수로 이루어진 자료형에 대해 같은 인덱스끼리 묶어 주는 역할을 하는 함수이다.(1)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | list(zip([1, 2], [3, 4])) # 결과 : [(1, 3), (2, 4)] list(zip([1, 2], [3, 4], [5, 6])) # 결과 : [(1, 3, 5), (2, 4, 6) list(zip([1, 2, 3], [4, 5, 6])) # 결과 : [(1, 4), (2, 5), (3, 6)] list(zip("ab", "cd")) # 결과 : [('a', 'c'), ('b', 'd')] list(zip("ab", [1, 2])) # 결과 : [('a', 1), ('b', 2)] | cs |
소스 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 배열 a와 b의 인덱스를 이용한 풀이 방법 def solution(a, b): answer = 0 for i in range(len(a)): answer += a[i]*b[i] return answer # zip을 이용한 풀이 방법 def solution(a, b): answer = 0 for i, j in zip(a, b): answer += i*j return answer | cs |
참고 자료
(1) 점프 투 파이썬 : wikidocs.net/32#zip
반응형
'프로그래머스 공부 > Python' 카테고리의 다른 글
[Level 1 / Python] 크레인 인형뽑기 게임(2019 카카오 개발자 겨울 인턴십) (1) | 2020.11.08 |
---|---|
[Level 1 / Python] 두 개 뽑아서 더하기(월간 코드 챌린지 시즌1) (0) | 2020.11.08 |
[Level 1 / Python] 키패드 누르기(2020 카카오 인턴십) (2) | 2020.11.05 |
[Level 1 / Python] 완주하지 못한 선수 (2) | 2019.12.04 |
[Level 1 / Python] 모의고사 (1) | 2019.12.04 |