https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 최소힙
  • 다이나믹 프로그래밍
  • 유클리드호제법
  • 유니온 파인드
  • 프로그래머스
  • 최대공약수
  • LIS
  • BFS
  • DP
  • 다이나믹프로그래밍
  • MST
  • 이분탐색
  • 백준
  • counter
  • 다익스트라
  • 재귀
  • 이분 탐색
  • Python
  • 그리디
  • 큐
  • 스택
  • 그래프
  • 재귀함수
  • heapq
  • 12015
  • 최단경로
  • 파이썬
  • 백트래킹
  • python3
  • DFS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

알고리즘

백준 4948 풀이 (python3 시간초과)

2021. 2. 8. 20:07

별게 없다 N< ~ <=2N사이의 소수의 개수를 구하라는 문제다.

그나마 소수를 빨리 구하는 방법은 에라트뢍러낭ㄹ의 체를 사용하는 것이라 생각해서 이를 토대로 코드를 구현했다.

def check(num):
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            return 0
    return 1*(num!=1)
while(1):
    a = int(input())
    if a == 0:
        break
    sum = 0
    for val in range(a+1,(a*2)+1):
        if check(val):
            sum+=1
    print(sum)

 

 

코드는 별게 없다. 문제는 python3로는 시간초과가 난다. 그래서 꼼수인 pypy3로 제출을 하면 시간초과가 걸리지 않고 답을 제출가능하다.

 

다른 사람들의 코드를 보면 더 간단한 방법으로도 가능했다. 

예를들어

1. 입력 조건 1 ≤ n ≤ 123,456 에 맞추어 미리 소수들을 전부 구한다.

2. n에 맞추어 1 ≤ n ≤ 123,456 사이에 존재하는 소수들만 뽑아서 len()함수로 출력

=> 해당 방법을 통해 미리 구해진 소수를 사용하여 소수를 빠르게 뽑을 수 있다.

'알고리즘' 카테고리의 다른 글

#3 알고리즘 공부 2/8 리뷰  (0) 2021.02.08
백준 9020 풀이 (골드바흐의 추측 )  (0) 2021.02.08
백준 1929 풀이 (에라토스테네스의 체)  (0) 2021.02.08
백준 2775 풀이  (0) 2021.02.07
백준 1193 풀이  (0) 2021.02.07
    '알고리즘' 카테고리의 다른 글
    • #3 알고리즘 공부 2/8 리뷰
    • 백준 9020 풀이 (골드바흐의 추측 )
    • 백준 1929 풀이 (에라토스테네스의 체)
    • 백준 2775 풀이
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바