PS/문제 풀이

[프로그래머스/Swift] 140107번 - 점찍기

시르베어 2025. 4. 28. 14:21

🔗 문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/140107

💡 구현 아이디어

  1. d를 기준으로 원을 그려서 x에 대한 y를 구함
  2. x가 k의 배수인 경우에 k의 배수인 y 개수 구함

💻 코드

import Foundation

func solution(_ k:Int, _ d:Int) -> Int64 {    
    let d: Int64 = Int64(d)
    let k: Int64 = Int64(k)
    
    var i: Int64 = 0
    var result: Int64 = 0
    
    while i*i <= d*d {
        let temp: Int64 = d*d - i*i
        let y: Double = sqrt(Double(temp))
        
        if i % k == 0 {
            result += Int64(y) / k + 1
        }
        
        i += 1
    }
    
    return result
}

❌ 틀린 이유 및 틀린 부분

⏳ 시간 복잡도

O(N) : X값 0~sqrt(d^2) 범위까지만 확인

📌 풀이 또는 기억할 정보