프로그래머스 LV2. 가장 큰 수
✅ 프로그래머스 LV2. 가장 큰 수
이번 문제를 포스팅 하는 이유는 조금 특이한 정렬 방법 때문이다.
우선 정렬를 저렇게 하는데, 저렇게 하면 각 숫자의 길이에 관계없이, 정렬을 할 수가 있다.
그리고 0000을 반환하는 옵션을 하나 추가하는데, 내림차순임으로 가장 앞자리가 0이면 모든 값이 0이라는 의미니까 이렇게 작성한다.
//https://programmers.co.kr/learn/courses/30/lessons/42746
import Foundation
struct p42746 {
static func run() {
// print(p42746.solution([6, 10, 2])) // 6210
// print(p42746.solution([3, 30, 34, 5, 9])) // 9534330
print(p42746.solution([0, 0, 0])) // 0
}
static func solution(_ numbers:[Int]) -> String {
// 차례로 앞 두개를 순서를 바꾸어서 이어 붙여보기
var answer = ""
let list = numbers.sorted { Int("\($0)\($1)")! > Int("\($1)\($0)")!}
answer = list.map { "\($0)" }.joined()
if answer.first == "0" { answer = "0" }
return answer
}
}
'알고리즘 문제 풀이' 카테고리의 다른 글
[Swift] BOJ 2158 포도주 시식 (0) | 2022.04.02 |
---|---|
[Swift] BOJ 1912 연속합 (0) | 2022.04.02 |
[Swift] BOJ 1932 정수 삼각형 (0) | 2022.04.01 |
[Swift] BOJ 11053 가장 긴 증가하는 부분 수열 (0) | 2022.04.01 |
[Swift] BOJ 2579 계단 오르기 (0) | 2022.04.01 |