
문제
https://school.programmers.co.kr/learn/courses/30/lessons/70128
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
- 길이가 같은 두 1차원 정수 배열 a, b가 주어졌을 때, a와 b의 내적을 리턴
- 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 이하
- a, b의 길이는 1 이상 1,000 이하
정답 코드 1
def solution(a, b):
result = 0
for i in range(len(a)):
result += a[i]*b[i]
return result
풀이 설명
- result = 0
- 누적된 내적 결과를 저장할 변수 result를 0으로 초기화
- for i in range(len(a)):
- a의 길이만큼 반복문을 실행 (두 배열 a, b는 같은 길이이므로 len(b)도 가능)
- i는 인덱스를 나타내며, 0부터 len(a)-1까지 순차적으로 증가
- result += a[i]*b[i]
- 각 인덱스 i에 대해, a[i]와 b[i]의 곱을 구한 뒤 result에 더함
- return result
- 계산이 모두 끝난 후 누적된 result 값을 반환
정답 코드 2
def solution(a, b):
return sum(x*y for x, y in zip(a, b))
풀이 설명
- zip(a, b)
- a와 b의 각 원소를 순서대로 묶어서 튜플로 반환
(ex) zip([1,2], [3,4]) → (1,3), (2,4)
- a와 b의 각 원소를 순서대로 묶어서 튜플로 반환
- sum(x*y for x, y in zip(a, b))
- 각 위치의 곱을 구한 후, 곱들의 합계를 반환
'코딩 테스트 연습 > [프로그래머스] Python' 카테고리의 다른 글
| [LV.2] 연습문제 > 문자열 다루기 기본 (0) | 2025.06.23 |
|---|---|
| [LV.2] 위클리 챌린지 > 부족한 금액 계산하기 (0) | 2025.06.20 |
| [LV.2] 연습문제 > 문자열 내림차순으로 배치하기 (1) | 2025.06.19 |
| [LV.2] 월간 코드 챌린지 시즌2 > 약수의 개수와 덧셈 (0) | 2025.06.18 |
| [LV.2] 문자열 반복 (0) | 2025.06.16 |