๐ชด ํ์์ผ TIL๐ชด
โ๏ธ ์์ ์๊ณ ๋ฆฌ์ฆ: ์๋ผํ ์คํ ๋ค์ค์ ์ฒด
์์๋ ์ฝ์๊ฐ 1๊ณผ ์๊ธฐ ์์ ๋ฐ์ ์๋ ์์ด๋ค.
์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ฅ ์์ ์์๋ฅผ ์ฐพ์ ๋ค, ๊ทธ ์์์ ๋ฐฐ์๋ ์ ๊ฑฐํ๋ ๋ฐฉ์์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ค์์ผ๋ก ์์ ์์๋ฅผ ์ฐพ๊ณ ๋ฐฐ์๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๊ณ์ ๋ฐ๋ณตํ๋ค.
ํ์ด์ฌ์ผ๋ก ์์ฐ์ n๊น์ง์ ์์์ ์์๋ฅผ ์ฐพ์ ๋, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ก ์ฐพ๋๋ค๋ฉด ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํด์ผ๋ค. ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ฅผ n+1๋ก ์ก์ ๋ค, ๋ฆฌ์คํธ์ 0๊ณผ 1 ์ธ๋ฑ์ค๋ฅผ ์ ์ธํ๊ณ ๋ชจ๋ True๊ฐ์ ๋ฃ์ด์ค๋ค. ๋ฆฌ์คํธ๋ฅผ for๋ฌธ์ผ๋ก ๋๋ฆฌ๋ฉด์ ๊ฐ์ฅ ์์ ์์๋ฅผ ์ฐพ๊ณ , ๋ฐฐ์ ๊ฐ์ ์ธ๋ฑ์ค๋ ๋ชจ๋ False๋ก ๋ง๋ค์ด์ค๋ค. ๋ฆฌ์คํธ์์ True์ ๊ฐฏ์๋ฅผ ์ธ๋ฉด ์์ฐ์ n๊น์ง์ ์์ ์์๊ฐ ๋ช ๊ฐ ์๋์ง ์ ์ ์๋ค.
n = int(input())
num_list = [True for i in range(n+1)]
num_list[0], num_list[1] = False, False
for i in range(len(num_list)):
if num_list[i]:
for j in range(2,len(num_list)//2):
if i * j < n+1:
num_list[i*j] = False
cnt = 0
for i in num_list:
if i:
cnt += 1
print(cnt)
boolean์ 1byte์๋ฃํ์ด๋ฏ๋ก, ๋ฆฌ์คํธ์ ๊ธธ์ด๊ฐ 1,000์ด๋ฉด ์ฝ 1KB, ๊ธธ์ด๊ฐ 1,000,000์ด๋ฉด ์ฝ 1MB๋ฅผ ์ฌ์ฉํ๋ค. ๋๋ถ๋ถ์ ์ฝ๋ฉํ ์คํธ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ 128MB ~ 512MB๋ก ์ ํํ๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ๊ฐ์ด ์ผ์ต ๋จ์๋ฅผ ๋์ง ์๋๋ค๋ฉด ์์ผ๋ก ์์๋ฅผ ์ฐพ์ ๋, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ๋ง์ด ์ฌ์ฉํ ๊ฒ ๊ฐ๋ค.
๐์ค๋ ํ ์ผ๐
๐ธ ์๋ฆฌ์ค์ฝ๋ฉ ํ๋ฆฌํธ๋ ์๊ฐ
์ด์ ๋ถ๋ด๋ถ๋ด ์ ์ฒญํ๋๋ฐ, ๋ค์๋ 9์์ ํ๋ฆฌํธ๋ ์๊ฐ ๊ฐ๋ฅํ๋ค๋ ๋ฉ์ผ์ด ์๋ค. ์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ํ ์คํธ๋ ๋ด์ผํด์ ์์ง ํฉ๊ฒฉ์ ์๋์ง๋ง ํ ์ผ์ด ์๊ฒผ๋ค๋ ๊ฒ๋ง์ผ๋ก๋ ๋๋ฌด ๊ธฐ๋ปค๋ค. ์ด์ฌํ ๋ฐฐ์์ ํ ์คํธ๋ ์ ๋ณด๊ณ ์ถ๋ค. ์์!!
๐ธ ๋ฐฑ์ 1์ฐจ ์ ์ข
๋๋์ด ๋ฐฑ์ ๋ง๊ณ ์๋ค... ํ์ด ๋๋ฌด ๋ป๊ทผํ๋ค... ๋ด์ผ ๋ ์ํ๋ค๋๋ฐ... ์ ๋ฐ ๊ด์ฐฎ๊ธฐ๋ฅผ... ๐
๐ค๋ด์ผ ๋ค์ง๐ค
๐ ์๋ฆฌ์ค์ฝ๋ฉ ํ๋ฆฌํธ๋ ์๊ฐ
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ต๋ํ ๋ง์ด ํ๊ธฐ!!! (๊ฑฐ์ ํ๋ฃจ์ 15๊ฐ ์ด์...!!)
๐ ์์์ ์ธ ๊ธฐ์ ์ฐพ๊ธฐ
'๊ฐ๋ฐ > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
#210916 TIL (0) | 2021.09.17 |
---|---|
#210915 TIL (0) | 2021.09.16 |
#210913 TIL (0) | 2021.09.14 |
#210912 TIL (0) | 2021.09.13 |
#210911 TIL (0) | 2021.09.12 |