반응형
입력 & 출력
0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요.
풀이
6, 10, 2가 주어졌을 경우
이들을 정수로 만들어 비교한 후 위치를 바꾼다
610 과 106 중 큰 값은 610 이고, 102와 210중 큰 값은 210 이고, 62 와 26 중 큰 값은 62 이니
두 문자를 비교해 정렬한 값은 6 2 10 이 된다
이 추출한 가장 큰 값을 문자열로 만들어 출력해준다
1. 두 문자열을 합해 정수로 만들어 비교한다
Int("\($0)\($1)")! > Int("\($1)\($0)")
2. 배열에 이 과정을 적용시켜 가장 큰 값으로 정렬한다
array.sorted{ Int("\($0)\($1)")! > Int("\($1)\($0)")!}
3. 추출한 큰 값을 문자열로 만든다
array.reduce(""){$0 + "\($1)"}
Swift 전체 코드
return numbers.sorted{ Int("\($0)\($1)")! > Int("\($1)\($0)")!}.reduce(""){$0 + "\($1)"}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 정렬 - H-Index (0) | 2021.03.31 |
---|---|
[프로그래머스] 정렬 - K번째 수 (0) | 2021.03.31 |
[백준] 기본 수학 2 - 1978번 소수 찾기 (0) | 2021.03.31 |
[백준] 기본 수학 - 2839번 설탕 배달 (0) | 2021.03.30 |
[백준] 기본 수학 - 2775번 부녀회장이 될테야 (0) | 2021.03.30 |