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);