길이가 같은 두 배열이 주어지면,
각 배열의 i번째 요소들을 각각 곱해서 다 더해주는 문제이다.
주어진 문제는 다음과 같다.
[길이가 같은 두 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의 길이)]
아래에는 내가 풀었던 문제의 정답이다.
C =list()
def solution(a, b):
for one,two in zip(a,b):
C.append(one*two)
answer = sum(C)
return answer
문제를 보며 내가 생각한 문제에 대한 접근법은 다음과 같다.
1)우선, 각 배열의 요소들을 더해서 넣어두는 새로운 배열을 만들어야겠다.
-> C = list()
-> 여기에 각각의 요소들을 곱한 값을 순서대로 넣어야겠다.
2)하나의 배열 안에 있는 모든 요소를 합해주는 함수가 존재할까?
-> 검색해보니 sum()이라는 함수가 존재했다.
-> answer에 sum(C)를 넣었다.
3)그렇다면 두개의 배열을 하나의 for으로 돌리는 것이 가능할까?
-> 검색해보니 zip이라는 함수가 있었다. ex) for A,B in zip(a,b) 라는 형식으로 가능하다.
-> 그래서 나는 변수를 one,two로 각각 선언한 다음 for one,two in zip(a,b)로 for문을 작성했다.
4)두 배열의 요소들을 순서대로 각각 곱한 후에 C라는 리스트에 넣자.
-> for one,two in zip(a,b):
C.append(one*two)
5)마지막으로 C리스트에 들어가 있는 모든 요소들을 합해서 answer에 넣자.
-> answer = sum(C)
return answer
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 신규 아이디 (0) | 2021.05.18 |
---|---|
[프로그래머스] 체육복 문제풀이 (0) | 2021.05.17 |
[프로그래머스]모의고사 (0) | 2021.05.15 |
[프로그래머스] 폰켓몬 문제풀이 (0) | 2021.05.14 |
[프로그래머스] 완주하지 못한 선수 문제풀이 (0) | 2021.05.13 |