[코테] HackerRank Mini-Max Sum

Dongmin Lee·2023년 5월 11일
0

코테

목록 보기
4/23

💿 문제

💾 문제 요약

길이 5의 배열이 들어왔을 때 랜덤한 요소 4개 합의 최소값과 최대값을 구해라.

💿 풀이

sort 메서드로 인자로 받은 배열을 오름차순 정렬시키고 slice 매서드와 reduce 매서드를 조합해서 계산하면 됨.

💾 풀이 코드

"use strict";

process.stdin.resume();
process.stdin.setEncoding("utf-8");

let inputString = "";
let currentLine = 0;

process.stdin.on("data", function (inputStdin) {
  inputString += inputStdin;
});

process.stdin.on("end", function () {
  inputString = inputString.split("\n");

  main();
});

function readLine() {
  return inputString[currentLine++];
}

/*
 * Complete the 'miniMaxSum' function below.
 *
 * The function accepts INTEGER_ARRAY arr as parameter.
 */

function miniMaxSum(arr) {
  const sortedArr = arr.sort((a, b) => a - b);

  const miniSum = sortedArr
    .slice(0, sortedArr.length - 1)
    .reduce((acc, cur) => acc + cur, 0);
  const maxSum = sortedArr.slice(1).reduce((acc, cur) => acc + cur, 0);

  console.log(`${miniSum} ${maxSum}`);
}

function main() {
  const arr = readLine()
    .replace(/\s+$/g, "")
    .split(" ")
    .map((arrTemp) => parseInt(arrTemp, 10));

  miniMaxSum(arr);
}

💿 리마인더

  1. sort 매서드로 오름차순/내림차순 정렬하기

  2. slice 매서드 =>
    인자가 하나(n)면 n개 만큼 앞에서 빼고 복사
    인자가 두개(a,b)면 인덱스 a부터 b까지 복사

  3. reduce 매서드로 배열 요소의 합 구하기

profile
어제보다 성장하기

0개의 댓글