[백준 | Javascript] 10818

박기영·2022년 5월 17일
0

백준

목록 보기
35/127
post-custom-banner

1차원 배열 1단계
10818번. 최소, 최대

문제

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

입력

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

출력

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

예제 입출력

예제 입력

5
20 10 35 30 7

예제 출력

7 35

solution

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

const iter = Number(inputData[0]);
let arr = inputData[1].split(' ').map(Number);

arr.sort((a,b) => a-b);

console.log(`${arr[0]} ${arr[iter - 1]}`);

해설

처음에는 문제를 보자마자 Math.max(), Math.min()을 사용해서 풀고자 했는데, 런타임 오류가 발생했다. 이유를 찾아보니 max, min 방식은 최대 스택 사이즈가 125,547개까지만 가능해서 문제를 풀기에는 부족했던 것이다.
그래서 sort()를 사용해서 오름차순으로 숫자를 정렬한 뒤에 양 끝에 있는 숫자들만 뽑아서 출력했다.

profile
나를 믿는 사람들을, 실망시키지 않도록
post-custom-banner

0개의 댓글