728x90
반응형
내 생각
1. 약수의 리스트를 구함
2. 정렬
3. k-1 번째 수를 리턴해준다.
구현
# K번째 약수
def solution(a,b):
def sol1(n):
li = list()
for i in range(1,n):
if n % i == 0:
li.append(i)
return li
def sol2(li,b):
if len(li) < b:
return -1
li.sort()
return li[b-1]
li = sol1(a)
answer = sol2(li,b)
return answer
print(solution(6,3))
print(solution(25,5))
print(solution(100,5))
print(solution(100,7))
print(solution(1000,12))
다른사람 생각
- cnt=0 으로 초기화
- 하나씩 올라가면서 약수면 cnt += 1
- 판단 이후, b와 일치하면 리턴
- 정상적으로 for 문이 다 돌았다면, b까지 오는 약수의 갯수를 초과한 것이므로 -1 리턴
# K번째 약수
def solution(a,b):
cnt = 0
for i in range(1,a+1):
if a % i == 0:
cnt += 1
if cnt == b:
return i
return -1
print(solution(6,3))
print(solution(25,5))
print(solution(100,5))
print(solution(100,7))
print(solution(1000,12))
728x90
반응형
'Dev > Algorithm' 카테고리의 다른 글
14. [알고리즘] K번째 큰 수 (0) | 2021.04.29 |
---|---|
13. [알고리즘] K번째 작은 수 (0) | 2021.04.29 |
[백준] 플러드필 (0) | 2021.04.01 |
[백준] 그래프의 탐색 (DFS, BFS) (0) | 2021.03.27 |
[백준] 그래프와 BFS (0) | 2021.03.22 |