출처
백준 온라인 저지
문제
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
풀이
이번 문제는 최솟값과 최댓값을 구하는 문제입니다.
split 메서드를 사용하여 줄(\n)을 기준으로 입력값을 나누어줍니다.
그 후 split 메서드를 한번 더 사용하여 공백(' ')을 기준으로 한번 더 나누어 줘야 합니다.
첫 번째 줄 주어진 정수 N을 count로 이용하여 numbers 배열에 담긴 값을 for 문을 사용해 모든 값과 비교 후 max값과 min값을 구해주었습니다. 현재 저장된 max 값보다 크면 해당 값으로 바꿔주고, min 값보다 작으면 해당 값을 바꿔줍니다.
코드
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let count = Number(input[0]);
let numbers = input[1].split(' ').map(x=> Number(x));
let max = numbers[0];
let min = numbers[0];
for (let i = 1; i < count; i++) {
if (max < numbers[i]) {
max = numbers[i];
}
if (min > numbers[i]) {
min = numbers[i];
}
}
console.log(`${min} ${max}`);
다른 방식
이번에는 sort 메서드를 사용해보았습니다.
sort 메서드로 내림차순 정렬을 하면 numbers 배열에서 index 0번째가 최솟값이 되고
numbers 배열에서 첫 번째 줄에 주어진 정수 N - 1(마지막 인덱스) 은 최댓값이 됩니다.
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let count = Number(input[0]);
let numbers = input[1].split(' ').map(x=> Number(x));
numbers.sort((a, b) => a - b);
console.log(`${numbers[0]} ${numbers[count - 1]}`);