320x100
문제 : leetcode.com/problems/the-kth-factor-of-n/
양수 n, k가 주어질 때, n으로 나누어 떨어지는 정수들을 오름차순 정렬했을 때, k번째로 나오는 수를 구하라.
1부터 루트 n 만큼 반복문을 돌면서 k를 감소시킨다.
만약 n이 탐색 중인 수 i 으로 나누어 떨어졌을 때 배열에 n/i를 저장한다.
탐색 중에 k가 0이 된다면 i가 정답이 된다.
만약 i의 제곱이 n이라면 반복문 중에 k를 한 번 소모하는데 벌써 사용이 되었으므로 배열에 저장하지 않는다.
탐색이 끝났을 때 배열 크기보다 k가 크다면 정답이 없는 경우이므로 -1을 반환한다.
정답이 있는 경우 배열의 뒤에서 k번째에 있는 수가 정답이 된다.
시간복잡도는 O(루트n).
소스코드 : github.com/fpdjsns/Algorithm/blob/master/leetcode/medium/1492.%20The%20kth%20Factor%20of%20n.cpp
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[leetcode][1345] Jump Game IV (0) | 2020.12.27 |
---|---|
[leetcode][1010] Pairs of Songs With Total Durations Divisible by 60 (0) | 2020.12.08 |
[leetcode] [239] Sliding Window Maximum (0) | 2020.11.29 |
[leetcode][416] Partition Equal Subset Sum (0) | 2020.11.28 |
[leetcode][394] Decode String (0) | 2020.11.21 |
댓글