백준 10818 최소,최대 [JavaScript]

김한주·2022년 10월 25일
0
post-thumbnail

문제

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

풀이

var fs = require('fs')
var input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
var n = parseInt(input[0])      //정수 n개
const num = input[1].split(' ').map(Number);

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

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

다른 풀이

//첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
var fs = require('fs')
var input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
var n = parseInt(input[0])      //정수 n개
const num = input[1].split(' ');

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

for(let i=1; i<n; i++){
    if(max < parseInt(num[i])){
        max = num[i];

    }
    if(min > parseInt(num[i])){
        min = num[i];
    }
}
console.log(min, max);

map을 사용하지 않아도 가능하다.

위가 map을 사용하지 않았을 때,
아래가 map을 사용했을 때이다.

해설

n개의 비교할 정수를 map을 사용해 배열로 저장하였다. max와 min을 처음 수로 초기화하고 반복문을 돌며 비교하여 max와 min을 새로 저장할 수 있게 하였다.

  • map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.
const array1 = [1, 4, 9, 16];

// pass a function to map
const map1 = array1.map(x => x * 2);

console.log(map1);
// expected output: Array [2, 8, 18, 32]
profile
HANJUMON의 성장과정!

0개의 댓글