📝 문제
> 길이가 같은 두 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의 길이)
https://programmers.co.kr/learn/courses/30/lessons/70128
코딩테스트 연습 - 내적
길이가 같은 두 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의
programmers.co.kr
🎨 풀이
💡 첫번째 시도 = 성공
def solution(a, b):
answer = 0
for i in range(0,len(a)):
answer += a[i] * b[i]
return answer
> 핵심 : a와 b 리스트에서 같은 위치의 수를 곱하고 합계를 내주면 된다.
answer에 각 자리수의 내적 (곱한 값)을 넣어서 합계를 내준 것이다. for문을 쓸 때는 어짜피 인덱스 위치만 잘 나타내주면 되기 때문에 len(a)를 해도 되고 len(b)를 해도 된다. 어짜피 두 리스트의 길이는 같을 것이기 때문이다.
💡 다른 코드
def solution(a, b):
answer = 0
for i in range(0,len(a)):
a[i] = a[i] * b[i]
answer = sum(a)
return answer
> 어짜피 a와 b 리스트 같은 위치의 수를 곱하고 합계를 내주면 되는 문제기 때문에,
a[i] * b[i] 한 값을 a[i]에 다시 넣어두고 sum을 이용해서 합계를 내도 통과할 수 있다!
⭐ 느낀점
> 이 문제도 쉬워서..ㅎㅎ. 응용해봤더니 되는 건 좀 신기했다. '내적'이 잘 기억이 안나서 입출력 예시 없었으면 못 풀었을듯하다. 저런 기본 용어들도 좀 알아둬야겠다는 생각이 들었다.
'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Level 1] K번째수 (파이썬) (0) | 2022.04.05 |
---|---|
[프로그래머스 / Level 1] 완주하지 못한 선수 (파이썬) (0) | 2022.04.04 |
[프로그래머스 / Level 1] 음양 더하기 (파이썬) (0) | 2022.04.02 |
[프로그래머스 / Level 1] 없는 숫자 더하기 (파이썬) (0) | 2022.04.01 |
[프로그래머스 / Level 1] 숫자 문자열과 영단어 (파이썬) (0) | 2022.03.31 |