문제 및 제한사항
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
**제한사항**
-10,000 ≤ numbers의 원소 ≤ 10,000
2 ≤ numbers 의 길이 ≤ 100
풀이 방법
예를 들어 numbers = [1, 2, -3, 4, -5] 일 경우 최댓값은 15가 되어야 한다.
음수, 양수, 0, 같은 수까지 경우의 수가 많아서 (특히 음수) 어떻게 해야 할지 고민했는데 의외로 간단했다.
먼저 내림차순이든 오름차순이든 차순으로 정리를 한다 > 그러면 한쪽엔 양수/한쪽엔 음수가 있게 된다.
예시를 내림차순으로 해보면 아래와 같다.
이 때 큰수끼리 곱해보고 작은수끼리 곱했을 때 어느 것이 더 큰지 비교하면 된다.
[4, 2, 1, -3, -5]
8 < 15
코드
function solution(numbers) {
numbers.sort((a, b) => a - b);
return Math.max(numbers[0] * numbers[1], numbers[numbers.length-1] * numbers[numbers.length-2]);
}
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 인덱스 바꾸기 (0) | 2023.03.26 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 직각삼각형 출력하기 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : n의 배수 고르기 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 주사위의 개수 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 세균 증식 (0) | 2023.03.25 |
문제 및 제한사항
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
**제한사항**
-10,000 ≤ numbers의 원소 ≤ 10,000
2 ≤ numbers 의 길이 ≤ 100
풀이 방법
예를 들어 numbers = [1, 2, -3, 4, -5] 일 경우 최댓값은 15가 되어야 한다.
음수, 양수, 0, 같은 수까지 경우의 수가 많아서 (특히 음수) 어떻게 해야 할지 고민했는데 의외로 간단했다.
먼저 내림차순이든 오름차순이든 차순으로 정리를 한다 > 그러면 한쪽엔 양수/한쪽엔 음수가 있게 된다.
예시를 내림차순으로 해보면 아래와 같다.
이 때 큰수끼리 곱해보고 작은수끼리 곱했을 때 어느 것이 더 큰지 비교하면 된다.
[4, 2, 1, -3, -5]
8 < 15
코드
function solution(numbers) {
numbers.sort((a, b) => a - b);
return Math.max(numbers[0] * numbers[1], numbers[numbers.length-1] * numbers[numbers.length-2]);
}
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 인덱스 바꾸기 (0) | 2023.03.26 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 직각삼각형 출력하기 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : n의 배수 고르기 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 주사위의 개수 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 세균 증식 (0) | 2023.03.25 |