-
[programmers/Swift] 가장 큰 수Archive/Questions 2022. 5. 10. 18:51728x90
programmers.co.kr - 코딩테스트연습 - Lv.2 - 정렬 - 가장 큰 수
Constraints :
- numbers의 길이는 1 이상 100,000 이하입니다.
- numbers의 원소는 0 이상 1,000 이하입니다.
- 정답이 너무 클 수 있으니 문자열로 바꾸어 return 합니다.
// // Created by Yongwoo Marco on 2022/05/10. // Copyright © 2022 Yongwoo Marco Kim. All rights reserved. // func solution(_ numbers:[Int]) -> String { let sorted = numbers.sorted { Int("\($0)\($1)")! > Int("\($1)\($0)")! } guard sorted[0] != 0 else { return "0" } return sorted.reduce("") { $0 + String($1) } } print(solution([6, 10, 2])) // "6210" print(solution([3, 30, 34, 5, 9])) // "9534330"
How I tried this :
처음 아이디어는 모든 경우의수를 순열을 이용해서 찾은뒤 정렬하는 구현이었는데역시 시간초과가 나왔다.
두번째 아이디어는 sorted 클로저를 계산해보려했는데
"34" "3" "30" 세가지를 줄세울때 "34330" 이 나오질 않았다..
sorted 클로저가 일일이 길어지는것보다 $0, $1 또는 lhs rhs 값을 주는 이유가
두 값을 비교하며 처리한다는 점을 바로 이용했다. "343" "334" 직접 비교해보는 형태로 구현했다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90'Archive > Questions' 카테고리의 다른 글
[programmers/Swift] 최소직사각형 (0) 2022.05.10 [programmers/Swift] 모의고사 (0) 2022.05.10 [programmers/Swift] [1차]비밀지도 (2018 Kakao Blind Recruitment) (0) 2022.05.09 [programmers/Swift] 나머지가 1이 되는 수 찾기 (0) 2022.05.09 [programmers/Swift] 키패드 누르기 (2020 Kakao 인턴쉽) (0) 2022.05.09