seunghyun Note

[프로그래머스] - 가장 큰 수 with JS 본문

코딩테스트/프로그래머스

[프로그래머스] - 가장 큰 수 with JS

승숭슝현 2024. 1. 6. 22:16

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42746

 

프로그래머스

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

programmers.co.kr

문제 풀이

문자열끼리 크기 변환이 가능하다. 
각 배열의 값을 문자로 바꾼후 비교하기
 sort 내에 내장되어있는 return -1이 되면 서로 변환된다.
-반례찾기 너무 어렵다.. [0,0,0] 일때 출력 "000"으로 돼서 마지막에 parseInt로 형변환 후 검사

 

function solution(number) {
    var answer = '';

    number.sort(function (a, b) {
        // a,b 를 문자로 변환
        var a_str = a.toString();
        var b_str = b.toString();
        
        // 비교를 위해 더함 sum_str1 : 610, sum_str2 : 106
        var sum_str1 = a_str + b_str;
        var sum_str2 = b_str + a_str;

        // 문자열끼리 크기 변환이 가능
        
        if (sum_str1 > sum_str2) {
            // -1 을 변환해서 change
            return -1;
        } else if (sum_str1 == sum_str2) {
            return 0;
        } else {
            // 그대로
            return 1;
        }
    });
    
    for(let i=0; i<number.length;i++){
        answer += number[i];
    }
    
     if (parseInt(answer) === 0) {
        answer = "0";
    }
    
    return answer;
    
    

}


solution([0,0])

 

 

728x90