[Level 2 / 스택] 기능개발 + Swift
기능개발
나의 풀이
func solution(_ progresses:[Int], _ speeds:[Int]) -> [Int] {
var max = 0
var count = 0
var results: [Int] = []
for i in 0..<progresses.count {
let left = Int(ceil(Double((100 - Double(progresses[i])) / Double(speeds[i]))))
if left > max {
max = left
if i != 0 { results.append(count) }
count = 1
} else {
count += 1
}
if i == progresses.count - 1 { results.append(count) }
}
return results
}
테스트케이스 11?
처음에 테스트케이스 11가 틀렸다고 나왔다. 그 이유는, 작업의 남은 날을 나타내는 left의 계산이 틀렸기 때문이다.
progresses에서 progress가 90일 때 10이 남았는데, 하루에 4만큼을 진행한다면 남은 날은 2.5에서 올림을 한 3이어야 한다. 하지만 Int타입이었기에 10을 4로 나누었을 때 2가 나오게 된다. 그래서 타입을 Double로 바꾸었고, 리턴의 타입은 Int이었기에 다시 타입을 변환하였더니 통과되었다.
let left = Int(ceil(Double((100 - progresses[i]) / speeds[i]))) 에서
let left = Int(ceil(Double((100 - Double(progresses[i])) / Double(speeds[i])))) 로 수정하였다.
let progresses = [92, 90]
let speeds = [4, 4]
return [1, 1]
Author And Source
이 문제에 관하여([Level 2 / 스택] 기능개발 + Swift), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@leeesangheee/Level-2-기능개발저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)