알고리즘/프로그래머스

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

lheunoia 2022. 2. 10. 17:16

 

 

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

 

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

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

programmers.co.kr

 

 

 

이번 문제는 정렬 문제였습니다. 

 

 

 

 

《문제 풀이》

 

1. numbers 배열의 숫자를 문자열로 변환

2. 문자열로 변환한 두 숫자를 합치면서 오름차순 정렬 ← (b+a) - (a+b)

3. 결과값을 문자열로 변환

 

★ numbers 배열이 0으로만 이루어진 경우 '000'과 같은 결과가 나올 수 있기 때문에 결과값을 '0'으로 처리

 

 

 

 

《Javascript 코드》

function solution(numbers) {
    let answer = numbers.map(number => number + '')
                          .sort((a, b) => (b+a) - (a+b))
                          .join('');
    answer = answer[0] === '0' ? '0' : answer;
    return answer;
}

 

 

 

프로그래머스 - 정답 화면

 

 

 

 

반응형