ALGORITHM

[백준/ node.js] 배열 - 10818번 최소, 최대

연듀 2021. 6. 27. 14:38

 

10818번 최소, 최대

 

문제

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

입력

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

출력

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

 

 

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

const count = input[0];
const nums = input[1].split(' ').map(Number);

let max = nums[0];
let min = nums[0];

for(let i=0; i<count; i++){
    if(max<nums[i]) max = nums[i];
    if(min>nums[i]) min = nums[i];
}
console.log(min,max);

 

두번째 입력 줄 부터 공백으로 나눠 nums 배열을 만든다.

배열의 첫번째 값을 각각 max와 min으로 설정한 후 

배열을 돌며 max보다 크면 그 배열 원소를 max로,

min보다 작으면 배열 원소를 min으로 대입하여 최솟값과 최댓값을 찾아나간다.

 

 

sort()를 이용한 방법

 

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

const count = input[0];
const nums = input[1].split(' ').map(Number);

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

console.log(nums[0], nums[count-1]);

 

배열 원소를 오름차순으로 정렬한 다음 

첫번째 값과 마지막 값을 출력한다.