반응형
-풀이
def solution(n):
num=set(range(2,n+1))
for i in range(2,n+1):
if i in num:
num-=set(range(2*i,n+1,i))
print(set(range(2*i,n+1,i)))
return len(num)
-풀이 설명
한 가지 수가 아닌 1부터 입력받은 숫자 n사이의 소수의 개수를 다 반환해야 해서 엄청 오래 고민했었는데 결국 풀지 못하고 다른 사람의 풀이를 보고 풀게되었다. 집합 자료형인 set()함수를 사용하는 걸 보고 색달랐다. 먼저 num에 2에서 부터 n 까지의 수를 담고 거기서 소수가 아닌 수는 다 빼내어 num의 길이를 반환하는 방식으로 생각보다 간단하게 풀 수 있다는 것을 알게 되었다.
'알고리즘' 카테고리의 다른 글
[프로그래머스][level 1]문자열 다루기 기본 (0) | 2021.10.05 |
---|---|
[프로그래머스][level 1]서울에서 김서방 찾기 (0) | 2021.10.03 |
[프로그래머스][level 1]수박수박수박수박수 (0) | 2021.10.03 |
[프로그래머스][level 1]문자열을 정수로 바꾸기 (0) | 2021.10.03 |
[프로그래머스][level 1]시저암호 (0) | 2021.10.02 |