정렬 - 가장 큰 수
https://programmers.co.kr/learn/courses/30/lessons/42746
첨에 순열 알고리즘으로 풀어야겠다고 생각하고 구글링을 했다.
근데 그렇게 하면 모든 경우의 수를 다 뽑아내서 join으로 합치고 가장 큰 수를 찾아내야되는데 너무 오래 걸릴것 같아서 엎어버리고 풀이를 찾아봤다..
function solution(numbers) {
const answer = numbers
.map((v) => v + "") // 숫자를 문자열로 바꾸고
.sort((a, b) => (b + a) - (a + b)) // 문자열 끼리 합쳐서 비교를 해준다 가장 큰 수를 찾아야 하기 때문에 b+a 에서 빼준다.
.join(""); // sort한 문자열을 합쳐준다.
return answer.replace(/^0+/,"0");
// 테스트 케이스에서 [0,0,0,0]이 주어지면 "0000" -> "0"으로 치환해준다.
}
+
: 앞의 표현식이 1회 이상 연속으로 반복되는 부분과 대응
내 힘으로 완전히 풀지는 못했지만 comparefunction을 잘 활용하여 문자열을 합쳐가면서 정렬하는 방법을 알 수 있게 되었다.