[프로그래머스] Lv2. 점 찍기

lemythe423·2023년 8월 28일
0
post-thumbnail

🔗

풀이

kd의 최대값이 백만이기 때문에 가능한 경우의 수를 전부다 구하거나 저장하면 시간초과.

0부터 k간격으로 x좌표를 늘려가면서 가능한 좌표의 개수만 구해서 더해나간다. 각 x좌표에서 최대로 가질 수 있는 y좌표의 값을 구한 후 k로 나눠주면 된다. y좌표도 k간격으로 나뉘기 때문이다.

def solution(k, d):
    answer = 0

    for x in range(0, d+1, k):
        answer += int((d**2-x**2)**0.5)//k + 1
    return answer
profile
아무말이나하기

0개의 댓글