Algorithm/Solution

[프로그래머스] 가장 큰 수 (JavaScript)

BeNI 2022. 10. 21. 21:56
728x90

코딩테스트 연습 - 가장 큰 수 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

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