반응형
https://www.acmicpc.net/problem/2960
n,k = map(int, input().split())
num = [i for i in range(2,n+1)]
cnt = 0
while num:
p = num[0]
for i in num:
if i%p == 0:
num.remove(i)
cnt += 1
if cnt == k:
print(i)
break
에라토스테네스의 체 문제는 백준에 상당히 많은데요. 그 중에서도 쉬운 편이 아닌가 생각합니다. 일단 n의 최대 범위가 1000까지이기 때문에 이중 반복문의 최대가 10^6번의 연산이고 해당 연산은 1초안에 돌아가기 때문에 좀 비효율적인 코드라도 충분히 돌아갑니다. 설명을 그대로 코드로 옮겨도 돌아간다는 말이죠. 그래서 저도 대충 짜봤습니다. 역시 잘 돌아가구요. 나중에 데이터가 추가된다면 틀릴 수도 있지만 워낙 동일한 다른 문제가 많아서 아마 그럴 일은 없지 않을까 싶네요.
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ][Python]1748번 풀이 (0) | 2022.06.23 |
---|---|
[BOJ][Python]7576번 풀이 (0) | 2022.06.23 |
[BOJ][Python]1931번 풀이 (0) | 2022.06.21 |
[BOJ][Python]10162번 풀이 (0) | 2022.06.18 |