[프로그래머스] 최댓값 만들기(1)
카테고리 : 컴퓨터 공학
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드, · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 최댓값 만들기(1), · js 최댓값 만들기(1),
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드, · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · 최댓값 만들기(1), · js 최댓값 만들기(1),
문제 설명
정수 배열 numbers
가 매개변수로 주어집니다. numbers
의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤
numbers
의 원소 ≤ 10,000 - 2 ≤
numbers
의 길이 ≤ 100
입출력 예
numbers | result |
---|---|
[1, 2, 3, 4, 5] | 20 |
[0, 31, 24, 10, 1, 9] | 744 |
입출력 설명
입출력 예 #1
- 두 수의 곱중 최댓값은 4 * 5 = 20 입니다.
입출력 예 #1
- 두 수의 곱중 최댓값은 31 * 24 = 744 입니다.
나의 풀이
function solution(numbers) {
var maximum = Math.max(...numbers);
numbers.splice(numbers.indexOf(maximum), 1);
var secondary = Math.max(...numbers);
return maximum * secondary;
}
나의 두번째 풀이(Code Refactoring)
function solution(numbers) {
const [max1, max2] = numbers.sort((a, b) => b - a);
return max1 * max2;
}
// sort로 배열을 큰 값부터 나열 후 0번째 인덱스 * 1번째 인덱스
참고 할 만한 다른 사람의 코드
const solution = (numbers) => {
return [...numbers]
.sort((a, b) => b - a)
.reduce((acc, cur, idx) => (idx < 2 ? (acc *= cur) : acc), 1);
};
//reduce를 통한 연산식