codility Lesson5 - CountDiv

요리하는코더·2021년 11월 17일
0

알고리즘 - 문제

목록 보기
44/48
post-thumbnail

코드

O(1)

// you can use includes, for example:
// #include <algorithm>

// you can write to stdout for debugging purposes, e.g.
// cout << "this is a debug message" << endl;

int solution(int A, int B, int K) {
    // write your code in C++14 (g++ 6.2.0)

    int large = B / K, small = (A-1 >= 0 ? A-1 : 0) / K;

    if(A == 0) return large - small + 1; 
    return large - small;
}

풀이 및 소감

수학적으로 해결한 문제이다. A~B를 사이의 숫자 중 K로 나눈 나머지가 0인 것을 찾아야 하므로 B를 K로 나눈 몫에서 (A-1)을 K로 나눈 몫을 빼서 문제를 해결했다. 근데 처음에 틀렸었는데 A가 0인 경우도 0 / K는 0이므로 세려줘야했는데 빼먹었었다... 이런 실수들이 코딩 테스트 때 맞왜틀(맞는데 왜 틀림) 혹은 solve로 생각했는데 틀린 경우로 발생할 수 있으므로 조심해야겠다...!

profile
요리 좋아하는 코린이

0개의 댓글