728x90
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
예제 입력 1
5
20 10 35 30 7
예제 출력 1
7 35
CODE
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const input = [];
rl.on('line', function (line) {
input.push(line);
}).on('close', function () {
/*
5 [ '5', [ '20 10 35 30 7' ] ]
20 10 35 30 7
*/
const N = Number(input[0]);
const numbers = input[1].split(' ').map(Number);
// 1번 ==============================================================
numbers.sort((a, b) => a - b);
console.log(numbers[0], numbers[N - 1]);
// =================================================================
// 2번 ==============================================================
let min = numbers[0];
let max = numbers[0];
for (let i = 1; i < N; i++) {
if (min > numbers[i]) {
min = numbers[i];
}
if (max < numbers[i]) {
max = numbers[i];
}
}
console.log(min, max);
// =================================================================
process.exit();
});
Comment
두번째 줄 입력받은 숫자들을 split(' ') 을 통해 문자배열로 만들어주고
Array.map(Number) 함수를 통해 숫자 배열로 변환해 준 다음 풀이하면 된다.
1번
sort 함수를 이용하여 오름차순으로 숫자를 정렬하면
배열의 첫 요소가 최소값이 되고 마지막 요소가 최대값이 된다.
2번
최소값과 최대값을 배열의 첫 요소로 초기화 하고 for문을 이용하여 비교하는 방법이다.
String.split()
Array.map()
Array.sort()
References
'ALGORITHM > 백준 With Node.js' 카테고리의 다른 글
[백준] 2577번 / 숫자의 개수 / Node.js (0) | 2021.04.22 |
---|---|
[백준] 2562번 / 최댓값 / Node.js (0) | 2021.04.22 |
[백준] 1110번 / 더하기 사이클 / Node.js (0) | 2021.04.22 |
[백준] 10951번 / A+B - 4 / Node.js (0) | 2021.04.22 |
[백준] 10952번 / A+B - 5 / Node.js (0) | 2021.04.22 |
댓글