L5_CounDiv
목차
- Step 1. 문제 설명
- Step 2. 풀이
- Step 3. 결과
Step 1. 문제 설명
양수 A에서 B까지 원소로 구성된 list가 존재한다. K 값이 주어졌을때, K로 나눴을 경우, 나머지가 0인 숫자들의 개수를 return하는 문제다.
A <= i <= B
문제 : https://app.codility.com/programmers/lessons/5-prefix_sums/count_div/
step 2. 풀이
첫번째 풀이
1 |
|
-
A에서 B 원소까지 이루어진 집합 생성
-
0부터 B까지 K의 곱으로 이뤄진 집합 생성시, 만약 해당 집합이 B보다 크면 거기서 멈춘다
-
위에서 만든 집합의 교집합 생성
-
A,B가 모두 0이면 0을 리턴, 그렇지 않으면 K가 나눌 수 있는 개수 만큼인 해당 집합의 길이를 리턴
정확도는 100점이지만, performance를 0점 맞아서 50점 맞았다 …ㅎ
두번째 풀이
1 |
|
최대한 심플하게 풀어보려 노력했다..
-
A가 0일때, 0부터 B까지 이므로 0도 나머지가 0인 경우에 포함되므로 +1 을 해준다.
-
A가 0이 아닐때, B의 몫 - (A의 몫 - 1) 을 해줬다. 그 이유는 A도 K로 나눴을 때 나머지가 0일 수 있기 때문이다.