블로그 메뉴

    Tonkatsu
    Developer Lee
    Tonkatsu
    전체 방문자
    오늘
    어제
    • 분류 전체보기 (52)
      • Frontend (7)
        • React (3)
        • JavaScript (3)
        • HTML\CSS (1)
        • etc (0)
      • Backend (0)
        • Python\Django (0)
        • etc (0)
      • CS (32)
        • Algorithm\Coding Test (19)
        • Computer Science (8)
        • devops (5)
        • etc (0)
      • Languages (5)
        • Javascript (5)
        • Python (0)
        • etc (0)
      • 비상다반 (3)
      • 학원 (4)

    인기 글

    태그

    • CSS
    • 코테
    • 프론트엔드
    • HTML
    • javascript
    • 자바스크립트
    • 코딩테스트
    • 백준
    • 네트워크
    • BFS
    • CS
    • 프로그래머스
    • Push
    • merge
    • fetch
    • 리트코드
    • DFS
    • js
    • leetcode
    • Git

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    Tonkatsu

    Developer Lee

    프로그래머스-내적
    CS/Algorithm\Coding Test

    프로그래머스-내적

    2021. 11. 21. 23:32

    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

     

    문제 설명

    길이가 같은 두 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의 길이)


    제한사항
    • a, b의 길이는 1 이상 1,000 이하입니다.
    • a, b의 모든 수는 -1,000 이상 1,000 이하입니다.

     

    입출력 예
    [1,2,3,4] [-3,-1,0,2] 3
    [-1,0,1] [1,0,-1] -2

     

    풀이

     

    두 배열의 인덱스가 같은 원소들을 곱하여 총 합을 출력하면 된다.

     

    for 문을 사용하면 쉽게 답을 도출할 수 있다.

     

    function solution1(a, b) {
      let answer = 0;
      for (let i in a) {
        answer += a[i] * b[i];
      }
      return answer;
    }

     

    위처럼 for를 사용하여 풀 수도 있지만, JS에서는 여러 유용한 메서드가 있다.

     

    그 중에서 reduce는 배열의 모든 원소에 대해 함수를 시행하는 메서드인데, 인덱스 정보 역시 가지고 있으므로 이를 이용하면 reduce로도 내적을 구할 수 있다.

     

     

    function solution(a, b) {
        let answer = a.reduce((acc, _, i) => acc += (a[i] * b[i]), 0);
        return answer;
    }

     

    아직 이런 메서드가 익숙하지 않아서 for문으로 푼 문제들을 위처럼 메서드로 푸는 연습을 계속 할 예정이다.

     

    저작자표시 (새창열림)

    'CS > Algorithm\Coding Test' 카테고리의 다른 글

    javascript로 백준 문제 풀기-input  (0) 2021.11.30
    프로그래머스-구명보트  (0) 2021.11.28
    프로그래머스-음양 더하기  (0) 2021.11.22
    프로그래머스-기능개발  (0) 2021.11.20
    Javascript-행렬의 값 더하기  (0) 2021.11.08
      'CS/Algorithm\Coding Test' 카테고리의 다른 글
      • 프로그래머스-구명보트
      • 프로그래머스-음양 더하기
      • 프로그래머스-기능개발
      • Javascript-행렬의 값 더하기
      Tonkatsu
      Tonkatsu
      한 번 뿐인 인생 편하게 살고싶지만 그러려면 열심히 살아야 되니까 열심히 살려고 노력은 하지만 편하게 사는 사람

      티스토리툴바