하루한줄 코딩일기
[인프런 - 파이썬 알고리즘 문제풀이] 2.1 K번째 약수 본문
섹션 2.1 K번째 약수
👊 내 문제 풀이
먼저, 숫자 n의 약수들을 구한다. n을 n 이하의 숫자 i로 나누었을 때 나누어 떨어질 경우, 숫자 i는 n의 약수이므로 answer 리스트에 저장한다. n의 약수들 중 k번째 숫자를 출력해야 하므로, answer[k-1] 를 출력한다. 단, n의 약수의 개수가 k개보다 적어서 k번째 수가 존재하지 않을 경우 -1을 출력한다.
#입력처리
n, k = map(int, input().split())
answer = []
for i in range(1, n+1):
if n%i == 0:
answer.append(i)
if len(answer) >= k: #k번째 수가 존재하면
print(answer[k-1])
else:
print(-1)
채점 결과
💡 강의 해답
cnt 변수를 만들어 n의 약수가 나올 때마다 1씩 더해준다. cnt가 숫자 k가 될 때의 i가 n의 k번째 약수이므로, i를 출력한다. k번째 약수가 존재하지 않을 경우 -1를 출력해 준다.
n, k=map(int, input().split())
cnt=0
for i in range(1, n+1):
if n%i==0:
cnt+=1
if cnt==k:
print(i)
break
else:
print(-1)
'Algorithm' 카테고리의 다른 글
[인프런 - 파이썬 알고리즘 문제풀이] 2.3 K번째 큰 수 (0) | 2022.01.24 |
---|---|
[인프런 - 파이썬 알고리즘 문제풀이] 2.2 K번째 수 (0) | 2022.01.24 |
[프로그래머스] 나머지가 1이 되는 수 찾기(LV.1) - 파이썬(Python) (0) | 2022.01.21 |
[프로그래머스] 내적(LV.1) - 파이썬(Python) (0) | 2022.01.21 |
[프로그래머스/2021 카카오 채용연계형 인턴십] 숫자 문자열과 영단어(LV.1) - 파이썬(Python) (0) | 2022.01.21 |
Comments