[프로그래머스 LV1] 실패율

Junyoung Park·2022년 8월 17일
0

코딩테스트

목록 보기
571/631
post-thumbnail

1. 문제 설명

실패율

2. 문제 분석

총 사람의 수는 특정 스테이지를 건널 수록 저번 차례의 사람의 수를 빼야 한다.

3. 나의 풀이

import Foundation

func solution(_ N:Int, _ stages:[Int]) -> [Int] {
    var nodes = Array(repeating: 0, count: N + 1)
    var people = stages.count
    var results = [(Double, Int)]()
    for stage in stages {
        let stage = stage - 1
        nodes[stage] += 1
    }
    nodes = [0] + nodes
    
    for idx in 0..<nodes.count {
        let node = nodes[idx]
        let percent = Double(node) / Double(people)
        results.append((percent, idx))
        people -= node
    }
    results.removeFirst()
    results.removeLast()
    results.sort(by: {$0.0 > $1.0})
    let answers = results.map{$0.1}
    
    return answers
}
profile
JUST DO IT

0개의 댓글