이전에 자바로 풀이한 문제를 타입스크립트로 다시 풀이합니다.
문제 설명 및 풀이 방식은 링크를 통해 볼 수 있습니다.
function solution(numbers) {
let answer = ''; //아래에서 바뀌므로 let으로 선언
const stringNumbers: string[] = new String[numbers.length];
for (const index in numbers) {
stringNumbers[index] = numbers[index].toString();
//stringNumbers.push(numbers[index]);
}
//정렬 과정 수정 필요
stringNumbers.sort();
for (const str in stringNumbers) {
answer += str;
}
if (stringNumbers[0] == "0") {
return "0";
}
return answer;
}
map(String)
: 배열의 타입을 String으로 재정의
sort()
: 정렬join()
: 배열의 원소들을 연결하여 하나의 값으로 만듬function solution(numbers) {
const answer: string[] = numbers.map(String)
.sort((a, b) => (b + a) - (a + b))
.join('');
//큰 순서대로 정렬했는데 가장 앞에가 0일 경우
//주어진 numbers가 [0, 0, 0, ...]이므로 000..이 아닌 0을 출력
return answer[0] === '0' ? '0' : answer;
}
[참고 자료]