본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 1026/javascript] 보물

by tokkiC 2022. 8. 24.

같은 길이의 배열을 두개 주고 같은 인덱스끼리의 곱의 총합을 비교,

가장 작은 총합이 되도록 두 배열을 바꿀 수 있다면

만들 수 있는 최소의 총합을 구하는 문제이다

가장 큰 수와 가장 작은 수끼리 곱하고 그걸 더하면 되는 문제이다

두 배열 중 하나는 오름차순, 다른 하나는 내림차순으로 정렬 하여 인덱스별로 곱해주면 되는 문제이다

https://www.acmicpc.net/problem/1026

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

www.acmicpc.net

let input = [];

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input.push(line);
});

readline.on("close", () => {
  solution(input);
  process.exit();
});

const solution = (inp) => {
  let n = Number(inp[0]);
  let A = inp[1].split(" ").map((el) => Number(el));
  let B = inp[2].split(" ").map((el) => Number(el));
  let s = 0;

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

  for (let i = 0; i < n; i++) {
    s += A[i] * B[i];
  }

  console.log(s);
};

댓글