์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ
- WebView
- ๋ฐฑํธ๋ํน
- dp
- ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ
- WebApp
- ios
- ์ฝ๋ฉํ ์คํธ
- ๋นํธ์ฐ์ฐ์
- ์๊ณ ๋ฆฌ์ฆ
- ์คํ
- ๋์ ํฉ
- ๋ถํ ํ์
- dfs
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ฝํ
- ๋ฌธ์์ด
- ๋ถํ ์ ๋ณต
- ์ด์งํ์
- ๋ฐฑ์ค
- Swift
- ๋ธ๋ฃจํธํฌ์ค
- SwiftUI
- ๋ถํ ์ ๋ณต
- Queue
- ์์
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
- BFS
- Today
- Total
MUKER_DEV with iOS
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์คํจ์จ ๋ณธ๋ฌธ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์ ํ์ด๋ฅผ ์ง๊ด์ ์ผ๋ก ์ดํดํ ์ ์๋๋ก ๊ณ ์ฐจํจ์๋ฅผ ์ฌ์ฉํ์ง ์์ ํ์ด์
๊ณ ์ฐจํจ์๋ฅผ ์ฌ์ฉํ ํ์ด๋ก ๋๋์ด ๊ณต๋ถํ๊ณ ์์ต๋๋ค.
- ๋ฌธ์ ์ ๋ฐ๋ผ ํ๋์ ํ์ด๋ง ์์ ์ ์์ต๋๋ค.
์คํจ ํ์ด 1
import Foundation
func solution(_ N:Int, _ stages:[Int]) -> [Int] {
var failureLate = [Int: Double]()
for i in 1...N {
let yet = stages.filter { $0 == i }.count
let clear = stages.filter { $0 >= i }.count
failureLate[i] = Double(yet) / Double(clear)
}
return failureLate.sorted(by: <).sorted(by: { $0.value > $1.value }).map { $0.key }
}
ํ... ๋์ ์ฒซ๋ฒ์งธ ์คํจ ํ์ด๋ค
5,9,22๋ฒ์ด์๋ ์๊พธ ์๊ฐ์ด๊ณผ๊ฐ ๋์ ๋ณ์ ๋ณ์ง์ ๋ค ํด๋ดค๋ค
Double์ Float์ผ๋ก ์ค์ฌ๋ณด๊ณ Float16 ์ผ๋ก ์ค์ฌ๋ณด๊ณ ..
ํ์ฅ๋ง ์ด๋ฆผ์๋ ๋ฅ๋ณผ^^
๊ฒฐ๊ณผ์ ์ผ๋ก๋ for๋ฌธ ์์ ์๋ filter๋ค์ด ๋ฌธ์ ์๋ค.
๊ทธ๋์ ๋์จ ์คํจ ํ์ด2
์คํจ ํ์ด 2
import Foundation
func solution(_ N:Int, _ stages:[Int]) -> [Int] {
var failureLate = [Int: Float32]()
var count = stages.count
for i in 1...N {
let yet = stages.filter { $0 == i }.count
failureLate[i] = Float32(yet) / Float32(count)
count -= yet
}
return failureLate.sorted(by: <).sorted(by: { $0.value > $1.value }).map { $0.key }
}
filter๋ฅผ ํ๋ ์ค์๋ค!!!
๋ ์๊ฐ์ด๊ณผ
๊ทธ๋ฅ.. ์ํ๊ฒ์^^
๋ผ๊ณ ํ๊ธฐ์ ๋งค๋ชฐ๋ ์๊ฐ์ด ๋๋ฌด ์๊น๋ค
๋ฐ๋ก 3๋ฒ์งธ ํ์ด
์ฑ๊ณต ํ์ด
import Foundation
func solution(_ N:Int, _ stages:[Int]) -> [Int] {
var failureLate = [Int: Double]()
var count = stages.count
for i in 1...N {
var yet = 0
for j in 0..<stages.count {
if stages[j] == i {
yet += 1
}
}
count -= yet
failureLate[i] = Double(yet) / Double(count)
}
return failureLate.sorted(by: <).sorted(by: { $0.value > $1.value }).map { $0.key }
}
๋ณต์ก๋๋~ for๋ฌธ์ ์ข์ํด~
์ด์งํผ O(n)์ผ๋ก ๋๊ฐ์๊ฑฐ ์๋๊ฐ..
stages์ ๊ธธ์ด ์ฆ ์ฌ๋์ธ์์ ๋งํผ์ count ๋ณ์๋ก ์ ์ฅํด ๋๊ณ
0๋ถํฐ stages๋ฅผ ์ซ ๋๋ฉด์ ํ์ฌ ์คํ ์ด์ง์ ๋จ์์๋ ์ฌ๋ ์(yet) ๋งํผ count์์ ๋นผ๊ณ
yet / count ํด์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ ๋์ ๋๋ฆฌ์ ์ ์ ๋ฃ๋๋ค
๊ทธ ํ ์ ๋ ฌ์ ์์ ๊ฐ์
์ด๋ ๊ฒ ํ์ด์ฑ๊ณต์ ํ์ง๋ง
์ฌ์ ํ ์ฐ์ฐํ๋ค
๊ทธ๋๋ ์๋ฃ๊ตฌ์กฐ๋ ์๊ฐ๋ณต์ก๋์ ๋ํด ์ฐพ์๋ณด๋ฉด์ ๊ณต๋ถํด์
๋ง๋ฅ ์๊ฐ์ ๋ ๋ฆฐ๊ฒ ์๋๋ผ ์๋ก์ค..
์ด์ ๋ ์๊ฐ๋ณต์ก๋๋ ์๊ฐํ๋ฉด์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํด๋ณด๊ณ ํ์ด๋ณด์!
'๐ค ์๊ณ ๋ฆฌ์ฆ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ํธ๋ ํ์ดํธ ๋ํ (0) | 2023.01.17 |
---|---|
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ๋ฌธ์์ด (0) | 2023.01.13 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ์์ ๋ง๋ค๊ธฐ (2) | 2023.01.11 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - ๋ชจ์๊ณ ์ฌ (0) | 2023.01.11 |
[swift] ํ๋ก๊ทธ๋๋จธ์ค - 2016๋ (0) | 2023.01.10 |