N

(프로그래머스 C++)가장 큰 수 본문

프로그래머스 알고리즘/2단계

(프로그래머스 C++)가장 큰 수

naeunchan 2021. 6. 1. 15:12
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/42746?language=javascript 

 

코딩테스트 연습 - 가장 큰 수

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰

programmers.co.kr

 

 

numbers를 문자열 배열로 바꾼 후, 유니코드 내림차순으로 정렬을 한다.

그리고 join()함수로 배열을 문자열로 바꿔준다.

 

만약 answer[0] 이 0이라면 값은 0를 나타낸다.

[0, 0, 0]이 numbers로 들어온 경우 리턴값은 "000"이 된다.

이를 방지하기 위해 answer[0]을 검사하여 "0"만 리턴하도록 한다.

그렇지 않다면 answer를 리턴하면 된다.

 

function solution(numbers) {
    const answer = numbers.toString()
        .split(",")
        .sort((a, b) => {
            if(a + b > b + a){
                return -1;
            }
            else if(a + b < b + a){
                return 1;
            }
        })
        .join("");
    
    return answer[0] === "0" ? "0" : answer;
}
728x90
반응형