티스토리 뷰
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42746
풀이
- 문제가 숫자로 되어 있지만 사실상 사전 정리 하는 문제
- 사전에서 A는 B보다 먼저 나오고 AA보다 먼저 나온다
- 따라서 해당 문제는 String 정렬을 이용하면 된다
- 주의점은 단순히 $0와 $1를 비교하는 것이 아닌 $0 + $1 와 $1 + $0을 비교하는 것이다
전체코드
import Foundation
func solution(_ numbers:[Int]) -> String {
let numbers: [String] = numbers.map{ String($0) }.sorted{ $0+$1 > $1+$0 }
if numbers[0] == "0" { return "0" }
return numbers.reduce(into: ""){ $0 += $1 }
}
풀고 난 후
문제를 풀때 처음 선택한 방법은 이 방식이 아닌 숫자의 자리 수를 맞춰주는 방식을 골랐었다.
몇가지 숫자를 골라서 했을때 진행이 되길래 이건가? 해서 시도했으나 전제가 틀린, 오답을 골랐던것이다….
1시간 정도 풀어본 후 다른 사람들의 질문과 답변을 보면서 풀이를 알게되었다
문제 코드를 작성하기 전에 좀 더 생각하면서 풀자
'PS > 문제 풀이' 카테고리의 다른 글
| [프로그래머스/Swift] 42839번 - 소수 찾기 (0) | 2025.02.13 |
|---|---|
| [프로그래머스/Swift] 42888번 - 오픈채팅방 (0) | 2025.02.12 |
| [프로그래머스/Swift] 49993번 - 스킬트리 (0) | 2025.02.10 |
| [프로그래머스/Swift] 154539번 - 뒤에 있는 큰 수 찾기 (0) | 2025.02.09 |
| [프로그래머스/Swift] 12913번 - 땅따먹기 (0) | 2025.02.09 |
