Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Bull
- Sequelize
- OCR
- jest
- Express
- class
- flask
- typeORM
- 자료구조
- cookie
- 공룡게임
- nodejs
- game
- 게임
- react
- mongoose
- AWS
- nestjs
- JavaScript
- GIT
- MongoDB
- dfs
- Queue
- TypeScript
- Nest.js
- 정렬
- MySQL
- Dinosaur
- Python
Archives
- Today
- Total
포시코딩
[프로그래머스][Lv.0] 합성수 찾기 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120846
내 풀이
def solution(n):
# n 이하 소수의 개수 찾기
# n - 소수 개수 - 1(1은 약수가 1이니까)
prime_list = []
for i in range(2, n+1): # 수정된 부분
for prime in prime_list:
if prime > i**0.5: # 정답 후 추가된 부분
prime_list.append(i)
break
if i % prime == 0:
break
else:
prime_list.append(i)
return n - len(prime_list) - 1
처음에 범위를 range(2, n)으로 잡아 n을 포함시키지 못해 정답을 못찾았는데
수정 후 정답이 되는 것을 확인.
추가로, 단순히 소수 list 전체를 확인해 소수 여부를 확인하는 과정에서
대상 i의 제곱근보다 비교하는 소수가 커지면 i는 소수인 점을 이용해 연산 속도를 더 높였다.
728x90
'자료구조알고리즘 > 문제풀이' 카테고리의 다른 글
[프로그래머스][Lv.0] A로 B 만들기 (0) | 2023.01.07 |
---|---|
[프로그래머스][Lv.0] 팩토리얼 (0) | 2023.01.05 |
[프로그래머스][Lv.0] 피자 나눠 먹기 (2) (0) | 2023.01.03 |
[프로그래머스][Lv.0] 외계행성의 나이 (0) | 2023.01.03 |
[프로그래머스][Lv.0] 최댓값 만들기 (2) (0) | 2023.01.03 |