WHAT I LEARNED/Algorithm

[프로그래머스 / 자바스크립트] 내적

보니bonnie 2022. 1. 24. 15:51
728x90

오전에는 안풀리는 문제들 투성이라 살짝 우울해져있었는데 오후 문제는 엄청 쉬운 문제를 만났다 😙

너무 쉽게 풀려서 약간 '엥?'스러울 정도!

 

친절하게 내적이 어떤 공식이 알려주는 착하디 착한 문제..

그래도 문제만 덜렁 봤을 때는 사실 잘 공식이 눈에 들어오지 않았다.

 

바로 입출력 예를 봤다. 

역시나, 입출력 보니까 이해가 빡!

두 개의 배열에서 같은 위치에 있는 요소들끼리 곱하고 그걸 싹 다 더하는게 포인트 !

역시나 for문이 사용된다. 할당받은 문제들이 전체적으로 for문이 빠지지를 않는다!

 

.

.

.

 

💡나의 코드

function solution(a, b) {
    var answer = 0;
    
    for (let i=0; i<a.length; i++) {
        answer += a[i] * b[i]
    }
    return answer;
}

n이 a와 b의 길이랬으니까 즉, a.length = b.length라는 말! 그래서 i의 조건문 대상을 a.length로 잡았다.

그리고 뭐 문제에서 가르쳐 준 공식 그대로 넣어서 다 합하는 +=를 넣으니까 완성.

 

실행시키고 통과돼서 놀랐다. 너무 간단한 코드고, 너무 간단하게 통과!

다른 분들이 쉽다 쉽다했던게 이런 느낌이었을까...? 🥳 

 

좋아요를 많이 받은 다른 분들의 코드를 보니 확실히 reduce 함수가 사용되었다.

많은 좋아요를 받은 코드들에 공통적으로 들어가는 것들이 몇 있는데 reduce도 그 중 하나!

reduce 공부도 해서 더 깔끔한 코드를 만들어야겠다!

 

 

 

📍출처 : 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

 

728x90