티스토리 뷰

백준

백준 1929 문제풀이 [python]

ys.k 2023. 6. 26. 03:27

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

개인적으로 너무 아쉬운 문제이다.

 

처음 소수 구하기를 만들고 제출했을 때, 시간 초과 오류가 떴다.

 

그리고 정답 비율을 보니, 26%로 악랄한 문제인듯하다.

 

어떻게 시간을 단축시킬 수 있다 생각을 했다.

 

배열에 2~n 값까지 미리 넣어두고, 2의 배수부터 삭제하고, 남아있는 다음 배열부터 또 삭제해 나가면 되지 않을까? 생각했다.

 

결과적으로 맞다.

 

근데 아직도 파이썬 기초 문법이 활용을 못해 구현을 못했다.

 

화가 났다.

 

결국 스스로 풀지 못하고 다른 사람 코드를 참고했다.

 

나는 어떻게든 시간 줄이려고 sys.stdin 까지 썼는데, 이것마저 안 쓰고 클리어 한 분이 계신다.

 

그분 코드를 참고했다.

 

코드

import sys as s
import math
m,n = map(int,s.stdin.readline().split())

for i in range(m,n+1):
    if i == 1:
        continue
    for j in range(2,int(math.sqrt(i)) + 1):
        if i% j == 0:
            break
    else:
        print(i)

출처:https://sso-feeling.tistory.com/387

 

[백준] 1929 소수 구하기 파이썬 풀이 (기본수학2)

코드 x, y = map(int, input().split()) for i in range(x, y+1): if i == 1: #1은 소수가 아뉘지! continue for j in range(2, int(i** 0.5)+1 ): if i%j==0: break else: print(i) 풀이 소수는 자신과 1밖에 약수가 없는 수이다. 그럼 모든

sso-feeling.tistory.com

고수의 느낌이 물씬 나는 코드다.

 

또한 내가 생각하지 못한 부분은, 루트였다.

 

루트를 씌움으로써 범위를 획기적으로 줄일 수 있다.

 

이렇게 하나 배워간다.

 

새벽엔 늘 아쉬움이 가득하다.

 

진짜 자야겠다.

 

'백준' 카테고리의 다른 글

백준 1010 문제풀이 [python]  (0) 2023.06.27
백준 1934 문제풀이 [python]  (0) 2023.06.26
백준 1012 문제풀이 [python]  (0) 2023.06.26
백준 1316 문제풀이 [python]  (0) 2023.06.25
백준 11399 문제풀이 [python]  (0) 2023.06.25
댓글