문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return 하도록 solution 함수를 완성해 주세요.
입출력 예
numbers | result |
[1, 2, -3, 4, -5] | 15 |
[0, -31, 24, 10, 1, 9] | 240 |
[10, 20, 30, 5, 5, 20, 5] | 600 |
문제 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function solution(numbers) {
let answerNum = 0
// 내림 차순 정렬
const answer = numbers.sort((a,b)=>{
return b-a
})
if(answer[0] * answer[1] > answer[answer.length-1] * answer[answer.length-2]){
answerNum = answer[0] * answer[1]
}else{
answerNum = answer[answer.length-1] * answer[answer.length-2]
}
return answerNum;
}
|
cs |
문제를 풀며 느낀 점
- 먼저 numbers를 sort() 함수를 통해서 내림 차순 즉 큰 값에서, 작은 값으로 정렬된 배열을 answer에 할당하였고 조건문을 통해서 배열의 제일 앞에 있는 수(가장 큰 수)와 배열의 두 번째로 있는 수 (두 번째로 큰 수)를 곱한 값이, 배열의 제일 뒤의 있는 수(가장 작은 수)와 바로 앞에 있는 수(두 번 재로 작은 수)를 곱한 값 보다 크다면 앞에 있는 두 수의 곱한 값을 return 하고 아니라면 뒤에 두 수를 곱한 값을 return 합니다.
'코딩 테스트 풀이 🛠' 카테고리의 다른 글
[프로그래머스] 숫자 찾기 (0) | 2023.01.04 |
---|---|
[프로그래머스] 피자 나눠 먹기 (2) (0) | 2023.01.04 |
[프로그래머스] 외계행성의 나이 (0) | 2023.01.04 |
[프로그래머스] 배열 회전시키기 (0) | 2023.01.04 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2023.01.04 |