[문제풀기] 프로그래머스 배열 두배 만들기

yeols·2023년 9월 23일
0

Algorithm

목록 보기
12/16
post-thumbnail

프로그래머스 최댓값 만들기

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는
최댓값을 return 하도록 solution 함수를 완성해주세요.


입출력 예

numbersresult
[1, 2, 3, 4, 5]20
[0, 31, 24, 10, 1, 9]744

입출력 예 설명

입출력 예 #1

  • 두 수의 곱중 최댓값은 4 * 5 = 20 입니다.

입출력 예 #2

  • 두 수의 곱중 최댓값은 31 * 24 = 744 입니다.

나의 문제 풀이

function solution(numbers) {
  const max = Math.max(...numbers);
  numbers.splice(numbers.indexOf(max), 1); 
  return max * Math.max(...numbers);
}

문제 풀이 해설

전달받은 배열 numbers의 첫번째 max를 Math.max() 메서드로 뽑아내고
numberssplice()메서드를 이용해 뽑아낸 max를 찾아 삭제한다.
그 후 max값과 다시 생성된 배열의 최대값을 Math.max()메서드를 사용해 뽑아서 곱한뒤 return한다.


다른 사람의 문제 풀이

function solution(numbers) {
  let [a, b] = numbers.sort((a,b) => b - a);
  return a * b;
}

다른 사람의 문제 풀이 해설

전달받은 배열 numberssort((a, b => b - a))메서드를 통해 배열을 내림차순으로 정렬하고
구조분해로 정렬된 배열의 앞 2개의 숫자를 곱해서 return 한다.


후기

생각을 좀 더 신중히 하고 간결하고 가독성이 좋은 코드를 생각 해냅시다..

profile
흠..

0개의 댓글