728x90
📌 문제
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
- 0 ≤ numbers의 원소 ≤ 10,000
- 2 ≤ numbers의 길이 ≤ 100
📌 풀이
sort를 했는데도 왜 틀렸다는 건지 한참을 고민했는데 출력해보니 오름차순이 아니라 유니코드 상에서의 데이터로 정렬되는 거였다.
**오름차순 (내림차순은 b - a)
function compareNumbers(a, b) {
return a - b;
}
**문자열에도 적용되는 sort를 쓰고 싶다면
function compare(a, b) {
if (a is less than b by some ordering criterion) {
return -1;
}
if (a is greater than b by the ordering criterion) {
return 1;
}
// a must be equal to b
return 0;
}
이렇게 쓰면 되는 거였다.
따라서 현재 내림차순으로 정렬했기 때문에 인덱스 0, 1이 가장 큰 값, 2번째로 큰 값이 된다.
📌 코드
function solution(numbers) {
numbers.sort(function(a, b) {
return b - a;
});
var biggest = numbers[0];
var bigger = numbers[1];
var answer = biggest * bigger;
return answer
}
728x90
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 자릿수 더하기 (0) | 2023.03.22 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 중앙값 구하기 (0) | 2023.03.22 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 아이스 아메리카노 (0) | 2023.03.22 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 순서쌍의 개수 (0) | 2023.03.21 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 배열의 유사도 (0) | 2023.03.21 |