ALGORITHM

[백준/ node.js] 배열 - 2562번 최댓값

연듀 2021. 6. 28. 20:39

https://www.acmicpc.net/problem/2562

 

2562번: 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어

www.acmicpc.net

 

문제

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.

예를 들어, 서로 다른 9개의 자연수

3, 29, 38, 12, 57, 74, 40, 85, 61

이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

입력

첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 100 보다 작다.

출력

첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 몇 번째 수인지를 출력한다.

 

 

 

const nums = require('fs').readFileSync('/dev/stdin').toString().split('\n').map(Number);
let max = nums[0];
let count = 0; 
for(let i=1; i<9; i++){
    if(nums[i]>max){
        max = nums[i];
        count = i;
    }
}
console.log(max);
console.log(count+1);

 

console.log(max+"\n"+count+1) 이렇게 하면 백준 사이트에서 틀렸다고 채점돼서 각각 출력해주었다.

 

 

 

Math.max()와 indexOf()를 사용한 방법

 

Math.max()는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환한다.

 

console.log(Math.max(1, 3, 2));
// expected output: 3
const array1 = [1, 3, 2];
console.log(Math.max(...array1));
// expected output: 3

 

 

 

indexOf()는 배열에서 요소의 인덱스를 반환한다.(없으면 -1 반환)

 

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

let max = Math.max(...nums);

console.log(max);
console.log(nums.indexOf(max)+1);