Algorithm/LeetCode
[LeetCode/Python] 1492. The kth Factor of n
빵빵0
2024. 7. 23. 01:42
n의 약수를 찾고 그 중 k번째 숫자를 리턴하는 문제이다.
간단한 문제였다.
class Solution:
def kthFactor(self, n: int, k: int) -> int:
divisor = set([])
for i in range(1, int(n**(1/2)) + 1):
if (n % i == 0):
divisor.add(i)
divisor.add(n // i)
if k > len(divisor):
return -1
return sorted(list(divisor))[k-1]
시간 복잡도
약수를 구할 숫자: N
=> O(1/2N)
다른 사람 풀이
- 전체 배열을 구하지 않고 딱 k번째 일때 리턴하는 풀이... 와우... 그러게 쓸데없이 다 구할 필요는 없었다!
class Solution(object):
def kthFactor(self, n, k):
count = 0
for i in range(1,n+1):
if n % i == 0 :
count+=1
if count == k: return i
return -1