codility - CountDiv

이슬비·2025년 6월 12일
0

Coding Test

목록 보기
16/16

문제

  • A, B, K가 주어짐
  • (A, B) 범위의 수들 중 K로 나뉘어지는 수의 개수 구하기

내 코드

def solution(A, B, K):
    cnt = 0
    for num in range(A, B+1):
        if num % K == 0:
            cnt += 1
    return cnt
  • O(B-A)만 생각했음
  • 일단 너무 짧게 단순히 풀리면 의심하자 ...

지피티 코드

def solution(A, B, K):
    # A 이상이면서 K로 나누어떨어지는 수 중 가장 작은 수
    if A % K == 0:
        start = A
    else:
        start = A + (K - A % K)
        
    # B 이하이면서 K로 나누어떨어지는 수 중 가장 큰 수
    if start > B:
        return 0
    return ((B - start) // K) + 1
  • 생각 조금만 하면 접근할 수 있는 부분 .........
profile
정말 알아?

0개의 댓글