난이도 1이지만 swift 언어로 푸는 것 자체가 익숙하지 않아서 좀 걸린 문제.

튜플의 개념에 대해 배웠고, 이를 활용하여 문제를 풀어봄.

또, swift의 sort가 unstable하다는 단점에 대해

요소 각각에 -를 붙여서 음수로 만들고 sort하면 stable해지는 요상한 현상 발견.

아무튼 이를 이용해 풀었다~ 이말이야 !

 

import Foundation

func solution(_ N:Int, _ stages:[Int]) -> [Int] {
    var current: Double = Double(stages.count)
    var beforeAnswer = [(Double, Int)]()
    var answer: Array<Int> = []
    
    for number in 1...N {
        var count: Double = 0
        for index in 0..<stages.count {
            if stages[index] == number {
                count = count + 1
            }
        }
        beforeAnswer.append((-count / current, number))
        current -= count
    }
    
    beforeAnswer = beforeAnswer.sorted(by: {$0 < $1 })

    answer = beforeAnswer.map{$0.1}
    
    return answer
}

 

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom