[프로그래머스] 가장 큰 수 찾기


문제 설명

정수 배열 array가 매개변수로 주어질 때, 가장 큰 수와 그 수의 인덱스를 담은 배열을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • 1 ≤ array의 길이 ≤ 100
  • 0 ≤ array 원소 ≤ 1,000
  • array에 중복된 숫자는 없습니다.

입출력 예

arrayresult
[1, 8, 3][8, 1]
[9, 10, 11, 8][11, 2]

입출력 예 설명

입출력 예 #1

  • 1, 8, 3 중 가장 큰 수는 8이고 인덱스 1에 있습니다.

입출력 예 #2

  • 9, 10, 11, 8 중 가장 큰 수는 11이고 인덱스 2에 있습니다.

나의 풀이

function solution(array) {
  var answer = [];
  answer.push(Math.max(...array), array.indexOf(Math.max(...array)));
  return answer;
}

나의 두번째 풀이(Code Refactoring)

function solution(array) {
  const maxNum = array.reduce((acc, cur) => Math.max(acc, cur));
  const maxIdx = array.indexOf(maxNum);

  return [maxNum, maxIdx];
}

//reduce를 사용해봤고 , reduce로 각 값을 비교하여 가장 큰 수를 구하고 indexOf로 가장 큰값의 인덱스를 추출했다

참고 할 만한 다른 사람의 코드

function solution(array) {
  return [
    Math.max(...array),
    array.findIndex((el) => el === Math.max(...array)),
  ];
}