Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 2501번 - 약수 구하기 (PYTHON 풀이) 본문
문제:

문제는 위와 같다. 약수를 계산한 뒤에 두번째로 입력받은 수만큼 작은 수를 출력해주는 프로그램이다. 문제만 딱 읽고 나서는 쉽다고 생각해서 코드를 써내려갔다.
k=[]
a,b=map(int,input().split())
for i in range(1,a+1):
if a % i == 0:
k.append(i)
sorted_number=sorted(k)
print(sorted_number[b-1])
그런데 이상하게도 런타임 에러가 났다. 알고보니 a의 약수 개수가 b보다 작은 경우를 생각해야 한다는 것을 꺠달았다..
수정코드는 다음과 같다.
답:
k=[]
a,b=map(int,input().split())
for i in range(1,a+1):
if a % i == 0:
k.append(i)
if len(k) >= b:
print(k[b-1])
else:
print(0)
문제 풀이를 간단하게 해보면, 어제 업로드한 코드 문제에서 약수 구하는 방법을 배웠었다! 이를 상기하며 풀면 쉽다.
1부터 입력받은 값만큼 루프를 돌건데, 이때 각 값을 a와 나누고 이 값이 0인 수만(약수) k라는 리스트에 담는다. 이 길이가 두번째로 입력받았던 b보다 클 경우에는 문제가 없으니 해당 값을 출력하고, 작을 경우에는 길이 문제가 발생하기 때문에 0을 출력하도록 예외 처리를 해준다.
인덱스에서 -1 을 하는 이유는 인덱스는 0부터 시작하기 때문이다!

이래서 문제를 잘 읽어야 한다..! 나와 같은 실수를 하지 않도록 문제를 꼭.. 꼼꼼하게 읽고 풀길 바란다
'CODING 💻' 카테고리의 다른 글
| 백준 1978번 - 소수 찾기 (PYTHON 풀이) (0) | 2025.09.03 |
|---|---|
| 백준 9506번 - 약수들의 합 (PYTHON 풀이) (0) | 2025.09.02 |
| 백준 5086번 - 배수와 약수 (PYTHON 풀이) (1) | 2025.08.31 |
| 백준 1264번 - 모음의 개수 (PYTHON 풀이) (0) | 2025.04.08 |
| 백준 10871번 - X보다 작은 수 (PYTHON 풀이) (with. print) (0) | 2025.03.04 |
