출처 : 백신, https://www.acmicpc.net/problem/2501
2501번: 약수 구하기
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
www.acmicpc.net
더보기
풀이
def solution(n):
arr = []
for i in range(1, int(n**0.5) + 1):
if n % i == 0:
arr.append(i)
if i != n//i:
arr.append(n//i)
return sorted(arr)
if __name__ == '__main__':
n, k = map(int, input().split())
try:
print(solution(n)[k-1])
except:
print(0)
전체 약수를 다 구하고 배열에서 index로 출력
만약 약수가 없어서 에러가 난다면 0 출력
시간 복잡도
O(nlogn)
다른 사람의 풀이를 보면서 알게 된 점
-
고찰
-
'알고리즘 > Python' 카테고리의 다른 글
[python] 백준 2460 - 지능형 기차2 (0) | 2022.03.02 |
---|---|
[python] 백준 3460 - 이진수 (0) | 2022.03.02 |
[python] 프로그래머스 - JadenCase 문자열 만들기 (0) | 2022.03.01 |
[python] 프로그래머스 - 최댓값과 최솟값 (0) | 2022.03.01 |
[python] 프로그래머스 - 주차 요금 계산 (0) | 2022.03.01 |