728x90
반응형
✔ 문제 설명
- 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.
- 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.(1은 소수가 아닙니다.)
✔ 제한 조건
- n은 2이상 1000000이하의 자연수입니다.
아래는 처음 제출한 코드이다. 효율성 테스트에서 통과하지 못하고 시간초과.
def solution(n):
answer = 0
arr = [0] * (n+1)
for i in range(2, n+1):
if arr[i] == 1:
continue
for k in range(2, i+1):
if i % k == 0:
if i != k:
arr[i] = 1
break
else:
answer += 1
for j in range(i, n+1, i):
arr[j] = 1
return answer
덕봇기의 도움을 받아 다시 작성한 코드. 무사히 통과되고 점수도 8점이나 받았다🙌
def solution(n):
answer = 0
arr = [0] * (n+1)
for i in range(2, n+1):
if arr[i] == 1:
continue
answer += 1
for k in range(i, n+1, i):
arr[k] = 1
return answer
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 멀쩡한 사각형 /파이썬 /python /최소공약수 (2) | 2020.08.07 |
---|---|
[프로그래머스] 스킬트리 / 파이썬 / python (0) | 2020.08.06 |
[프로그래머스] 오픈채팅방 / 파이썬 / python / 딕셔너리 배열 (1) | 2020.08.05 |
0308_프로그래머스 : 다리를 지나는 트럭(deque, queue) (0) | 2020.03.08 |
0303_프로그래머스 : 완주하지 못한 선수_해시 (0) | 2020.03.03 |