[Baekjoon Online Judge] 풀이

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

codeomni 2023. 2. 2. 15:38
반응형

 

안녕하세요.

이번 포스팅은 백준 온라인 저지의 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을 해줍니다.