본문 바로가기

Algorithm

Algorithm(Swift) - 가장 큰 수

프로그래머스 정렬에 있는 가장 큰 수 입니다.

 

해당 문제의 키포인트 입니다.

[6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210 입니다.

배열에대해 첫번째 값과 두번째 값을 비교했을때 더 큰값에 대해 정렬한다 ex) 0과 6 값이 있다면 06 와 60 비교하여 정렬한다.

최종적으로 정렬한값은 String으로 변환한후 배열이 아닌 값으로 리턴한다.

정렬한 값의 첫번째값이 0 일경우 나머지 값도 다 0이기때문에 0 으로 리턴한다 -> 0000 으로할경우 답이 아님.

import Foundation

func solution(_ numbers:[Int]) -> String {
    
    let sorted = numbers.sorted {
        return "\($0)\($1)" > "\($1)\($0)"
    }
    
    if sorted[0] == 0 {
        return "0"
    }
    
    return sorted.map{ String($0) }.joined()
}

https://programmers.co.kr/learn/courses/30/lessons/42746

 

코딩테스트 연습 - 가장 큰 수

0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰

programmers.co.kr

 

'Algorithm' 카테고리의 다른 글

Algorithm(Swift) - 부족한 금액 계산하기  (0) 2021.09.12
Algorithm(Swift) - H-Index  (0) 2021.08.28
Algorithm(Swift) - 모의고사  (0) 2021.08.27
Algorithm(Swift) - K번째수  (0) 2021.07.18
Algorithm(Swift) - 두 개 뽑아서 더하기  (0) 2021.07.18