[D+71]20220219

10818번

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 min= numbers[0]
let max= numbers[0]

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

검색해보던 중 내가 작성한 답안 말고 sort메소드를 사용하는걸 봤는데 훨씬 간단했다.

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]}`);

내림차순을 이용해서 0번째의 값은 최솟값이 마지막 값은 최댓값이 되는데 마지막 요소는 '배열의 길이-1'(count - 1) 을 해주면 된다.

2562번

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(x=> Number(x));

let count= 0;
let max= input[0];

for (let i = 1; i < 9; i++) {
    if (max < input[i]) {
        max = input[i];
        count = i;
    }
}
console.log(max);
console.log(count + 1);

다른 방법으로는 Math.max로 max값을 구하고 indexOf로 index 위치를 찾는것이다. (+1을 해주는 이유는 인덱스는 0부터 시작하기때문)

let input = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(x=> Number(x));

let max = Math.max(...input)

console.log(max)
console.log(input.indexOf(max) + 1)

좋은 웹페이지 즐겨찾기