[문제 설명]
길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해 주세요. a와 b의 내적은 a[0]*b[0] + a[1]*b[1]+ ...... + a[n-1]b[n-1] 입니다.
[제한사항]
- a, b 의 길이는 1 이상 1000 이하.
- a, b 의 모든 수는 -1000 이상 1000이하.
[내 풀이]
1. 내적이 뭔지 몰라서 찾아봄. 이런저런 뜻이있고 벡터에서 곱하기의 의미로 썻던게 기억났음.
2. 그냥 두 배열을 0부터 최대치까지 곱하고 더하는 함수를 짜면 되는듯.
*temp는 필요없다.
나는 많이 틀릴테니까 주피터에서 실행해 보고 출력이 되면 프로그래머스에서 실행한다.
다른사람 풀이 보니까 미쳤다. zip을 주로 사용하는거 같은데 zip에 대해 공부 해야 겠다고 생각했다. 그전에 반복문으로 처리 했지만 내 코드보다 깔끔한 코드로 다시 재작성 해보았다.
새로운 배열 c 를 만들고 a[i]*b[i]의 결과를 c배열에 순서대로 집어 넣는다. 그후 return에 배열c의 모든 값으 합인 sum(c)를 제출. 풀이 개념은 나와 똑같다. 하지만 더 많은 고민을 한것이 보이는 코드.
ZIP
여러개의 iterable한 객체를 인자로 받고 각 객체가 담고있는 원소를 튜플의 형태로 접근할 수 있는 iterator를 반환.
그니까.. 두 배열이 있을때 그 배열들의 첫번째 값들로 action을 하고 두번쨰 값들로 Action을 하고 ...... 할때 이걸 쓰면 좋은거 같음. 지금 위 문제가 딱 이게 필요한것 같습니다. 다시 zip으로 이를 풀어 보자면.
더 간단한 형태가 있으므로 그 방법으로 다시 풀어보았다. zip에 대해 먼저 공부하지 않고는 이 코드 알기란 불가능.
반복문을 축약 작성해서 작성하고 x*y 값으로 배열이 구성됨. 그후 sum 을통해 다 더하고 리턴한건데 공부할때니까 이런 깔끔한 코드도 공부 해야겠다.
'프로그래머스 코딩테스트 연습 Lv1' 카테고리의 다른 글
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 신규 아이디 추천 ] (0) | 2021.06.03 |
---|---|
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 체육복 ] (0) | 2021.05.31 |
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 완주하지 못한 선수 ] (0) | 2021.05.31 |
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 모의고사 ] (0) | 2021.05.31 |
프로그래머스 코딩테스트 연습- 모든문제 Lv1 [소수 만들기] (0) | 2021.05.14 |