2022. 10. 14. 13:43ใํ๋ก๊ทธ๋๋จธ์ค-Swift
ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ๋ฅ๊ฐ๋ฐ(Swift)
๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/42586
๋์ ํ์ด
idx๋ฅผ ์ด์ฉํด์ ํ์ ํ์ด์ด๋ค.
์ฒ์ ํ์ด๋ฅผ ํ์๋๋ idx์ Idx+1์ ๊ฒฝ์ฐ๋ง ์ฒดํฌํด์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฃ์๋๋ฐ, ๊ทธ๋ผ 5 3 4์ธ ๊ฒฝ์ฐ์ 3์ 4๋ณด๋ค ์๊ธฐ๋๋ฌธ์ ๊ฒฐ๊ณผ๊ฐ์ 2, 1์ด ๋ค์ด๊ฐ๋ค. (์๋๋ 3, 4๊ฐ 5๋ณด๋ค ์๊ธฐ๋๋ฌธ์ 1๋ง ๋ฃ์ด์ผ ํจ)
๊ทธ๋์ ์ฒ์ ๊ฐ์ ๊ธฐ๋กํ๊ณ ๊ทธ ๊ฐ๊ณผ idx+1์ ๋น๊ตํด์ ๋ฌธ์ ๋ฅผ ํ์๋ค.
import Foundation
func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] {
var days = progresses.indices.map { ceil(Double(100 - progresses[$0]) / Double(speeds[$0])) }
var result: [Int] = []
var idx = 0
var cnt = 1
var maxVal = 0.0
while true {
if idx == days.count-1 {
break
} else {
maxVal = max(maxVal, days[idx])
if maxVal >= days[idx+1] {
cnt += 1
} else {
result.append(cnt)
cnt = 1
maxVal = 0.0
}
idx += 1
}
}
result.append(cnt)
return result
}
๋ค๋ฅธ ์ฌ๋์ ํ์ด
๋ค๋ฅธ ์ฌ๋์ else๋ฌธ์์ lastReleaseDate๋ฅผ ์๋ก์ด ๊ฐ์ผ๋ก ์ด๊ธฐํ์ํค์ง ์๊ณ ํ์ฌ ์ธ๋ฑ์ค๊ฐ ์๋ค๋ฉด cnt๋ง ์ฆ๊ฐ์ํค๋ ํ์์ผ๋ก ํ์ดํ๋ค.
ํ์ํ๋ฉด์ ์์ ๊ฐ๋ณด๋ค ํฐ ๊ฐ๋ง์ด lastReleaseDate๊ฐ ๋ ์ ์๋ ๊ฒ์ด ํต์ฌ์ด๋ค. (์๋ค๋ฉด ๊ทธ๊ฑด ํฌํจํด์ ๋ฐฐํฌ ์ํค๊ธฐ ๋๋ฌธ)
import Foundation
func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] {
var lastReleaseDate: Int = 0
var result: [Int] = []
for i in 0..<progresses.count {
let progress = Double(progresses[i])
let speed = Double(speeds[i])
let day = Int(ceil((100 - progress) / speed))
if day > lastReleaseDate {
lastReleaseDate = day
result.append(1)
} else {
result[result.count - 1] += 1
}
}
return result
}
ํผ๋๋ฐฑ
๋ฌธ์ ์ ํ ์คํธ์ผ์ด์ค ๋ฟ๋ง ์๋๋ผ ์ฌ๋ฌ๊ฐ์ง ์ผ์ด์ค๋ฅผ ์ค์ค๋ก ๋ง๋ค๊ณ ๋ค์ํ๊ฒ ๋์ ํด์ ํธ๋ ๊ฒ ํ์ํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค-Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๋ด์ค ํด๋ฌ์คํฐ๋ง(Swift) (1) | 2022.10.15 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฆฐํฐ(Swift) (0) | 2022.10.14 |
ํ๋ก๊ทธ๋๋จธ์ค - ์์ฅ(Swift) (0) | 2022.10.14 |
ํ๋ก๊ทธ๋๋จธ์ค - n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2022.10.13 |
ํ๋ก๊ทธ๋๋จธ์ค - ํํ(Swift) (0) | 2022.10.12 |