티스토리 뷰

문제

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시간 정도 풀어본 후 다른 사람들의 질문과 답변을 보면서 풀이를 알게되었다

 

문제 코드를 작성하기 전에 좀 더 생각하면서 풀자

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함