부품 상자마다 번호표가 하나씩 붙어 있고, 상자를 원하는 순서로 늘어놓은 뒤
번호표를 왼쪽부터 그대로 이어 적어 창고 일련번호를 만듭니다.
예를 들어 번호표가 4, 45, 7 이라면 4 45 7 순서로 놓아 "4457", 45 7 4 순서로 놓아 "4574" 를 만들 수 있습니다.
번호표 배열 parts 가 주어질 때, 이렇게 만들 수 있는 가장 작은 일련번호를 문자열로 반환하세요.
0 이 오면 그 0 들은 일련번호에 적지 않습니다.
(예: "0790" 은 "790" 으로 적습니다.)0 을 모두 지웠을 때 남는 것이 없다면 "0" 을 반환합니다.solution(parts: number[]): string| parts | 반환값 | 설명 |
|---|---|---|
[4, 45, 7] |
"4457" |
4 45 7 순서 |
[0, 90, 7] |
"790" |
0 7 90 → "0790" → 앞의 0 제거 |
[52, 5, 58, 505] |
"50552558" |
505 5 25... 처럼 단순 오름차순이 아님 |
[0, 0, 0] |
"0" |
전부 0이면 "0" |
[30, 3] 은 "303" 과 "330" 두 가지가 가능하므로 "303" 이 답입니다.
번호표를 숫자 크기순으로 정렬하는 것만으로는 최솟값이 되지 않는다는 점에 주의하세요.
시간 복잡도 목표: O(N log N)
▶ 실행은 기록 없이 채점만, 제출은 결과가 진행률·오답노트에 기록됩니다.