문제(출처: 프로그래머스)
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
▶ 내가 푼 방식
//내가 작성한 코드
function solution(numbers) {
let answer = 0;
numbers.sort(function(a, b) {
if(a > b) return -1;
if(a === b) return 0;
if(a < b) return 1;
});
return numbers[0]*numbers[1];
}
▶ 다른 유저가 푼 방식
// 유저 1 : 다른 정렬방식
function solution(numbers) {
let [a, b] = numbers.sort((a,b) => b - a);
return a * b;
}
// 유저 2 : 내가 해보고 싶었던 방식
function solution(numbers) {
const max1 = Math.max(numbers)
const numbers = numbers.splice(numbers.indexOf(max1), 1);
const max2 = Math.max(numbers)
return max1 * max2;
}
▶ 배운 것들
- 첫번째 유저의 정렬방식
- 배열에서 특정 요소의 인덱스를 쉽게 차는 방법 : arr.indexOf(value)
'프로그래밍 > 코딩연습' 카테고리의 다른 글
[ JS 코딩연습 ] 2024/04/11 : 3. 숨어 있는 숫자의 덧셈 (0) | 2024.04.11 |
---|---|
[ JS 코딩연습 ] 2024/04/11: 1. 모음제거 (0) | 2024.04.11 |
[ JS 코딩연습 ] 2024/04/10: 2. 주사위의 개수 (0) | 2024.04.11 |
[ JS 코딩연습 ] 2024/04/10: 1. 가위 바위 보 (0) | 2024.04.10 |
[ JS 코딩연습 ] 2024/04/10 : 3. 개미군단 (0) | 2024.04.10 |