본문 바로가기
[Baekjoon Online Judge] 풀이

[Baekjoon Online Judge] 백준 2501번: 약수 구하기 파이썬 풀이 - 알고리즘 코딩 문제 해설 python

by codeomni 2023. 2. 2.
반응형

 

안녕하세요.

이번 포스팅은 백준 온라인 저지의 2501번 문제 풀이입니다.

문제 이름은 "약수 구하기" 입니다.

 

 

문제 링크는 바로 밑의 링크를 확인해주세요.

https://www.acmicpc.net/problem/2501

 

2501번: 약수 구하기

첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.

www.acmicpc.net

 

 

1
2
3
4
5
6
7
8
9
N, K = map(int, input().split())
result = []
for i in range(1, N+1):
    if (N % i == 0):
        result.append(i)
if len(result) < K:
    print(0)
else:
    print(result[K-1])
cs

 

 

1. 첫째 줄에 테스트 수를 입력받습니다.

map() 함수를 사용해서 공백 구분으로 자연수 N과 K를 입력받습니다.

 

2. 약수들을 저장할 리스트를 선언합니다.

 

3. for문을 통해서 숫자 1부터 N까지 순차적으로 탐색합니다.

 

4~5. i 번째 숫자가 N을 나누었을 때 0이 되면 N의 약수이므로

if문을 통해서 약수를 결과 리스트에 추가합니다.

 

6~7. 해당 문제의 출력 부분의 예외 처리로

약수의 개수보다 K가 클 경우 0을 출력합니다.

 

8~9. 약수를 리스트로 선언했기 때문에 

리스트의 인덱스는 0부터 시작하므로 +1을 해줍니다.

댓글