점 찍기

최민수·2023년 2월 27일
0

알고리즘

목록 보기
18/94
⭐️
import math

def solution(k, d):
    answer = 0

    for a in range(0,d+1,k):
        maxVal = math.sqrt(d**2 - a**2)
        answer += (maxVal//k+1)
    
    return answer
  • 이중 for문으로 돌리면 반드시 시간초과가 날 것이다. (n=10^6)
  • 반복문을 굳이 2번 돌릴 필요 없이, 한번만 돌려도 된다.
    • 반복문 안에서 더하는 값은 양의 정수의 배수로 커지기 때문이다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

profile
CS, 개발 공부기록 🌱

0개의 댓글