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 |
Tags
- 전략패턴 #StrategyPattern #디자인패턴
- 구글 OAuth login
- 파이썬
- KPT회고
- 개발자부트캠프추천
- JavaScript
- TiL
- jwt
- 프로그래머스
- 취업리부트코스
- 항해99
- Python
- 코딩테스트 준비
- 99클럽
- spring batch 5.0
- 빈 조회 2개 이상
- DesignPattern
- 인프콘 2024
- 디자인 패턴
- 프로그래머스 이중우선순위큐
- Spring multimodule
- 디자인패턴
- @FeignClient
- 커스텀 헤더
- 단기개발자코스
- 1주일회고
- jwttoken
- 개발자 취업
- infcon 2024
- 빈 충돌
Archives
- Today
- Total
m1ndy5's coding blog
[수학] 백준 4948번 베르트랑 공준 with Python(pypy3와 python3의 차이점은?) 본문
https://www.acmicpc.net/problem/4948
import math
def cnt_prime_num(n):
lst = [1] * ((2*n)+1)
lst[0] = 0
lst[1] = 0
for i in range(2, int(math.sqrt(2*n))+1):
j = 2
while i*j <= 2*n:
if lst[i*j] == 1:
lst[i*j] = 0
j += 1
lst = lst[n+1:(2*n)+1]
return lst.count(1)
n = int(input())
while n != 0:
print(cnt_prime_num(n))
n = int(input())
문제다 문제!!! python3로 시간초과나서 혹시? 하고 pypy3 했더니 통과가 됐다.
둘의 차이점은?!
pypy3는 python3 보다 복잡한 코드에서 속도가 빠르다는 장점이 있다.
이유는? 같은 코드가 반복되면 그 반복되는 코드를 캐싱(저장)하기 때문에 시간이 더 빠르다.
오잉 그렇다면 pypy3을 쓰는게 python3보다 이득 아님? 할 수도 있겠지만 반대로 python3가 pypy3보다 간단한 코드에서는 메모리 사용량과 시간 모두 더 빠르다고 한다.
하지만 python3으로도 통과한 사람들이 있어서 pypy3으로는 통과하긴 했지만 python3도 통과할만한 코드를 생각했고 (물론 조금 다른 사람 코드 참고했다ㅎ)
import math
def prime_num():
lst = [1] * ((123456*2)+1)
lst[0] = 0
lst[1] = 0
for i in range(2, int(math.sqrt(2*123456))+1):
j = 2
while i*j <= 2*123456:
if lst[i*j] == 1:
lst[i*j] = 0
j += 1
return lst
n = int(input())
lst = prime_num()
while n != 0:
temp = lst[n+1:(2*n)+1]
print(temp.count(1))
n = int(input())
생각해보니 n은 1부터 123456이라는 범위가 지정되어 있었고 미리 123456까지의 소수를 구해놓는다면 반복문이 돌아갈 때마다 구할 필요가 없었다!!! 그리고 math.sqrt()를 사용하지 않고 ** 0.5 를 사용해도 됐다!!ㅎㅎㅎ 굳!!
'알고리즘 with python > 수학' 카테고리의 다른 글
[수학] 백준 2609번 최대공약수와 최소공배수 with python (유클리드 호제법) (0) | 2023.03.01 |
---|---|
[수학] 백준 15649번 N과 M(1) with python (0) | 2023.03.01 |
[수학] 백준 1978 소수 찾기 with python (0) | 2023.02.27 |
[수학] 백준 1929번 소수 구하기 with python (0) | 2023.02.27 |
[수학] 백준 8393번 합 with Python (0) | 2023.02.26 |