코딩 테스트 풀이 🛠

[프로그래머스] 최댓값 만들기 (2)

엄성준 2023. 1. 4. 14:49

문제 설명

정수 배열 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 합니다.