일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Code Jam 2022
- K8S
- 하늘과 바람과 별과 詩
- C++
- Qualification Round
- 파이썬
- openebs
- Kubernetes
- 코딩테스트
- secondlowestgrade
- hackerrank
- 방통대 대학원 정보과학과
- 2022
- GitLab
- Python
- 정보과학과
- 프로그래머스
- 방송통신대학교 대학원 정보과학과
- LEVEL 2
- 해커랭크
- 하늘과 바람과 별과 시
- on-prem
- nestedlists
- 3D PRINTING
- ingress-nginx
- swift
- ESXi 업데이트
- MySQL
- Code Jam
Archives
- Today
- Total
공대생의 비망록
[프로그래머스][Lv. 1] 실패율 Swift 풀이 본문
https://programmers.co.kr/learn/courses/30/lessons/42889
풀이는 추후에 차차 올리도록 하겠습니다...
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
32
33
34
35
36
37
38
39
|
import Foundation
func solution(_ N:Int, _ stages:[Int]) -> [Int] {
var userCount: Int = stages.count
var stageCounts: [Int:Int] = [Int:Int]()
for n in 1...N {
stageCounts.updateValue(0, forKey: n)
}
for stage in stages {
if stage == N + 1 {
continue
}
stageCounts[stage] = stageCounts[stage]! + 1
}
var stageFailrates: [Int:Double] = [Int:Double]()
for stage in 1...N {
let stageCount = stageCounts[stage]!
if userCount != 0 {
stageFailrates[stage] = Double(stageCount) / Double(userCount)
userCount -= stageCount
} else {
stageFailrates[stage] = 0
}
}
var answer: [Int] = [Int]()
let sortedStageFailrates = stageFailrates.sorted {
if $0.1 > $1.1 {
return true
} else if $0.1 == $1.1 {
return $0.0 < $1.0
} else {
return false
}
}
for i in 0..<sortedStageFailrates.count {
answer.append(sortedStageFailrates[i].key)
}
return answer
}
|
cs |
'Programming Language > Swift' 카테고리의 다른 글
[프로그래머스][Lv. 1] 예산 Swift 풀이 (0) | 2022.04.06 |
---|---|
[Google Code Jam][Qualification Round 2022] Punched Cards Swift 풀이 (0) | 2022.04.03 |
[프로그래머스][Lv. 1] 시저 암호 Swift 풀이 (0) | 2022.04.01 |
[프로그래머스][Lv. 1] 부족한 금액 계산하기 Swift 풀이 (0) | 2022.03.14 |
[프로그래머스][Lv. 1] 가운데 글자 가져오기 Swift 풀이 (0) | 2022.03.14 |
Comments