728x90
코딩테스트 연습 - 가장 큰 수 | 프로그래머스 스쿨 (programmers.co.kr)
난이도 : Level 2
풀이과정 :
배열을 정렬할 때 compare함수를 어떻게 작성하는가에 대한 문제였다.
처음에는 일일히 경우의 수를 생각해서 해보다가 경우의 수가 너무 많다는 것을 알게됐고
간단한 방법으로 compare함수를 ab > ba 순으로 정렬 할 수 있도록 작성할 수 있었다.
하지만 테케 1개를 통과를 못했는데 도저히 모르겠어서 질문게시판을 보다가
답이 0일때 문자열로 처리되어 0000 이런식으로 출력되어 오답이 나올 수 있다는 걸 알게됐다.
그 부분만 처리하면 통과 !
코드 :
function solution(numbers) {
numbers = numbers.map((e) => ""+e);
numbers.sort((a,b) => {
let ab = `${a}${b}`;
let ba = `${b}${a}`;
if(ab === ba) return 1;
return ba - ab;
});
if(Number(numbers.join("")) === 0) return "0";
return numbers.join("");
}
728x90
'Algorithm > Solution' 카테고리의 다른 글
[프로그래머스] 큰 수 만들기(JavaScript) (0) | 2022.10.24 |
---|---|
[프로그래머스] 입국심사 (Javascript) (0) | 2022.10.21 |
[프로그래머스] 가장 먼 노드(JavaScirpt) (0) | 2022.10.21 |
[프로그래머스] 베스트앨범 (JavaScript) (0) | 2022.10.20 |
[프로그래머스] 프린터(JavaScript) (0) | 2022.10.20 |