반응형
출처
백준 온라인 저지
문제
첫째 줄에 주어진 정수 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]}`);
반응형