728x90
안녕하세요 코코종입니당.
lesson3은Time Complexity 인데요
마침 이전 문제에서 시간복잡도를 고려하지 않아서 틀렸어서 ㅎ.. (사실 이걸 노린 순서인가..?) 한번더 생각하게 되더라구요!
현 위치 X, 목표지점 Y, 한번에 뛸 수 있는 거리 D를 주고 Y지점에 도달하는(지나가도 됨) 시간을 구하는 문제였습니다.
단순히 X에서 무한히 D만큼을 더해주고 Y와 비교해도 되지만 아마 그렇게 하면 틀리겠죠?(그러라고 만든문제)
그래서 이동해야 하는 거리(Y - X) / 한번에 뛸 수 있는 거리(D) 를 해준 후 나머지가 있다면 한번 더 뛰게 했습니다.
import Foundation
import Glibc
// you can write to stdout for debugging purposes, e.g.
// print("this is a debug message")
public func solution(_ X : Int, _ Y : Int, _ D : Int) -> Int {
// x: 원래 위치, y: 목표 지점(이상), d: 한번에 얼마나 뛰는지
let distance = Y - X
var cnt: Int = Int(distance / D)
if distance % D > 0 {
cnt += 1
}
return cnt
}
추가적으로 나머지를 보지 않고 ceil 등으로 올림처리를 해도 되겠네요!
728x90
'알고리즘' 카테고리의 다른 글
[Swift 알고리즘] Codility lesson4 - FrogRiverOne (0) | 2022.10.31 |
---|---|
[Swift 알고리즘] Codility lesson3 - TapeEquilibrium (1) | 2022.10.31 |
[Swift 알고리즘] Codility lesson2 - OddOccurrencesInArray (0) | 2022.10.30 |
[Swift 알고리즘] Codility lesson2 - CyclicRotation (0) | 2022.10.23 |
[Swift 알고리즘] Codility lesson1 - BinaryGap (0) | 2022.10.12 |