😎풀이

  1. 배열의 모든 수를 문자로 변환
  2. 문자의 앞에 위치할 경우의 수 생성
  3. 생성된 문자를 localCompare를 통해 비교
  4. 정렬된 배열의 첫 번째 요소가 0이라면 요소는 모두 0이므로 0반환
  5. 아니라면 배열을 문자열로 합쳐 반환
function largestNumber(nums: number[]): string {
    const strNums = nums.map(String)
    const sortedNums = strNums.sort((a: string, b: string) => {
        const aFirst = a + b
        const bFirst = b + a
        // 문자열 비교 bFirst > aFirst ? 음수 : 양수
        return bFirst.localeCompare(aFirst)
    })
    // 모든 숫자가 0이라면 
    if(sortedNums[0] === '0') return '0'
    // 배열 합침
    return sortedNums.join("")
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글