PS/문제 풀이
[프로그래머스/Swift] 140107번 - 점찍기
시르베어
2025. 4. 28. 14:21
🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/140107
💡 구현 아이디어
- d를 기준으로 원을 그려서 x에 대한 y를 구함
- 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) 범위까지만 확인