티스토리 뷰

문제 링크입니다 : https://programmers.co.kr/learn/courses/30/lessons/42746?language=javascript

 

프로그래머스

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

programmers.co.kr

 

처음에 어떻게 접근해야할지 고민이 많이 됐다. 경우의 수를 다 나누자니 너무 어렵고 해서..

구글신에게 답을 구했다.

 

그 중에서 비교할 때, 문자열로 바꿔서 더해봐서 값이 더 큰 쪽으로 정렬되게 하는 방법이 가장 효율적으로 보였다.

 

그리고 배열로 전부 0, 0, 0, 0, 0, 0, 0, 0, 0, 0이렇게 들어온 경우 "0000000000"이 아닌 그냥 "0"으로 처리해줘야 한다. 이게 함정이었다.

 

문제 자체가 좋은지는 잘 모르겠다..

 

function solution(numbers) {
    var answer = '';
    
    numbers.sort(function(a, b) {
        let _a = String(a);
        let _b = String(b);
        return (_b + _a) - (_a + _b);
    });
    
    let allZero = true;
    for(let el of numbers) {
        answer += el;
        if(el !== 0) {
            allZero = false;
        }
    }
    
    if(allZero) answer = "0";
    
    return answer;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함