[프로그래머스] 점 찍기

단간단간·2024년 4월 1일
0

알고리즘 문제

목록 보기
38/106

문제 링크:

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

회고:

이건 효율성도 고려해야 하는 문제.
처음에 문제를 풀었을 때, while문으로 풀었으나 시간에서 통과를 못했다.
그러나 for문으로 변경하니 시간 통과했다.

  • 의문점에 대한 고찰:
    - 같은 횟수만큼 loop를 돈다고 했을 때, while문for문간에 속도 차이가 존재하나?
    - for문은 반복가능한 객체를 순회하는데 최적화되어 있으며, 루프의 반복 횟수가 명확할 때 적합하다. while문루프의 종료 조건이 반복 횟수가 아닌 다른 조건에 의해 결정될 때 유용하다.
    - for문while문 둘 중 어느 것이 더 빠른지는 상황에 따라 달라질 수 있으나, 같은 횟수만큼 루프를 돌 때 for문while문보다 약간 더 빠르다 (하지만 미미한 차이)
    - 성능보다는 각 루프의 사용 케이스에 더 주목할 필요가 있다.

python

def solution(k: int, d: int) -> int:
    count = 0

    for y in range(0, d + 1, k):
        x = int((d ** 2 - y ** 2) ** (0.5))
        count += x // k + 1

    return count


if __name__ == "__main__":
    result = solution(1, 5)

    print(result)
    print(result == 26)
26
True
profile
simple is best

0개의 댓글