[백준] 최소,최대 (10818) - JavaScript

안함·2021년 7월 6일
0

백준

목록 보기
1/12

문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

문제


입력

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


출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.


입출력 예제

// 입력
5
20 10 35 30 7

// 출력
7 35

풀이

최대 최소라고 단순히 Math.max 나 Math.min 을 사용하면 StackSizeExceeded 가 나온다.
입력 예제가 말그대로 스택 사이즈를 초과한다.
그렇기 떄문에 나는 reduce를 사용해서 풀기로 했다.
reduce를 사용해 비교해서 최대값과 최소값을 구해준후 출력


코드

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

const [n, numStr] = input;

const numList = numStr.split(' ').map((str) => +str);

const max = numList.reduce((acc, cur) => (acc > cur ? acc : cur), numList[0]);
const min = numList.reduce((acc, cur) => (acc < cur ? acc : cur), numList[0]);

console.log(min + ' ' + max);
profile
✨ Frontend Developer 🧑‍💻

0개의 댓글