본문 바로가기
  • 살짝 구운 김 유나
Algorithm/Programmers

[Lv.2] 최솟값 만들기 - JavaScript

by yunae 2023. 3. 5.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12941?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

곱의 누적값이 가장 작은 경우는 가장 작은 수 * 가장 큰 수를 곱해서 더해진 값이다.

A는 오름차순, B는 내림차순으로 정렬하여 index 순서대로 곱한 값의 누적합을 구하면 된다.

 

코드

function solution(A, B) {
  var answer = 0;
  const len = A.length;

  const sortedA = A.sort((a, b) => a - b);

  const sortedB = B.sort((a, b) => b - a);

  for (let i = 0; i < len; i++) {
    answer += sortedA[i] * sortedB[i];
  }

  return answer;
}

 

💡 What I Learned

배열 정렬하기

// 오름차순 정렬
const sortedA = A.sort((a, b) => a - b);
// 내림차순 정렬
const sortedB = B.sort((a, b) => b - a);

 

 

 

댓글