난이도 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
}
'Algorithm' 카테고리의 다른 글
프로그래머스 - 두 개 뽑아서 더하기 [Swift] (0) | 2021.06.29 |
---|---|
프로그래머스 - 3진법 뒤집기 [Swift] (0) | 2021.06.27 |
프로그래머스 신규 아이디 추천 [swift] (0) | 2021.06.26 |
프로그래머스 키패드 누르기 [Swift] (0) | 2021.06.26 |
프로그래머스 구명보트 [C++] (0) | 2021.06.17 |
최근댓글