220325 백준 최댓값

5616 단어 백준TILTIL

백준 2562번 문제

문제

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

입력

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

출력

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

예제 입,출력


내 풀이

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split("\n");

let big = 0;
let order = 0;
for (let i = 0; i < input.length; i++) {
 if (big < Number(input[i])) {
   big = Number(input[i]);
   order = i + 1;
 }
}
console.log(big);
console.log(order);
  1. 반복문으로 큰 수가 나온다면 그 숫자를
    big이라는 변수에 넣어주고
  2. i도 order라는 변수에 +1 해주면서 함께 재선언한다
  3. 로그에 출력하면 정답

나의 다른 풀이

let big = input.reduce((tot, cur, i) => (tot < cur ? cur : tot), 0);
console.log(big);
console.log(input.indexOf(big) + 1);
  1. reduce 함수로 최대값을 골라내고
  2. 그 최대값을 출력하고
  3. indexOf 메서드로 +1 해준 값을 출력한다

좋은 웹페이지 즐겨찾기