Javascript

[Javascript] 백준 10818 - 최소, 최대

eulBlue 2024. 1. 29. 20:45
 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

나는 아주 한글로 적혀있는 설명문이 제일 어려운 것 같다.

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

let min, max;
input[1].split(' ').map((v, i) => {
    const value = Number(v)
    if(i === 0) {
        min = value;
        max = value;
    } else {
        if(value < min) {
            min = value;
        }
        if(value > max) {
            max = value;
        }
    }
})

console.log(`${min} ${max}`)

맨 처음에 작성한 코드이다.

  1. map을 사용해 반복문을 통해 min max 계산 첫번째에 min max 처음값으로 세팅
  2. 문제는 코드도 길고 가독성이 떨어진다.

해서 가독성을 높이기 위해 reduce 와 Math 를 사용하였다.

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

const array = input[1].split(' ').map(v => Number(v));

let min = array.reduce((a, b) => Math.min(a, b));
let max = array.reduce((a, b) => Math.max(a, b));

console.log(`${min} ${max}`)