Algorithm_javascript/4. 1차원 배열

백준 2562번 최댓값 (javascript, node.js)

luminouswy 2023. 5. 18. 14:36
반응형

백준 2562번 최댓값 (javascript, node.js)

문제

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

입력

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

출력

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

예제입력 1

3
29
38
12
57
74
40
85
61

예제출력 1

85
8


문제풀이

  • 주어진 입력 값에서 최댓값을 찾는 문제
  • input 값을 숫자형으로 바꿔줘야지 정답으로 처리되는 것 같다.
  • Math.max를 사용하여 최댓값을 찾고 indexOf로 위치를 찾는 방법과
  • 반복문을 사용하여 최댓값을 비교하여 출력하는 방법으로 풀어보았다.

//2562
const fs = require('fs');
const file = process.platform === 'linux' ? 'dev/stdin' : './text.txt';
const input = fs.readFileSync(file).toString().trim().split('\n').map(Number);

//input 숫자로 변경해야 indexOf검색됨
//Math.max사용하기위해서 ...전개연산자 사용

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

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


// 반복문으로 풀경우
const n = input.length;
let max = input[0];
let maxIdx = 0;

for (i=0; i<n; i++){
    if(max < input[i]){
        max= input[i];
        maxIdx =i;
    }
}

console.log(max);
console.log(maxIdx+1);