[ํ๋ก๊ทธ๋๋จธ์ค] ๐ต๏ธโโ๏ธ ์์ ์ฐพ๊ธฐ / python
๐ต๏ธโโ๏ธ ์์ ์ฐพ๊ธฐ ๋ฌธ์ ํ์ด๋ณด๊ธฐ
๐ ๋์ ์ฝ๋
from itertools import permutations
def solution(numbers):
answer = set()
maximum = 10000000
prime_lst = [False, False] + [True] * maximum
for idx, num in enumerate(prime_lst):
if num:
k = idx*2
while k <= maximum:
prime_lst[k] = False
k += idx
for i in range(1, len(numbers)+1):
perm = permutations(list(numbers), i)
for i in list(perm):
num = int("".join(list(i)))
if prime_lst[num]:
answer.add(num)
return len(answer)
์์ ํ์exhaustive search๋ฅผ ์ด์ฉํ์ฌ ํธ๋ ๋ฌธ์ ์ ๋๋ค. ๋ฌธ์ ๋ ๋ ๊ฐ์ ๋ฌธ์ ๋ก ๋๋ ์ ํ ์ ์์ต๋๋ค. ํด๋น ์ซ์๊ฐ ์์์ธ์ง ํ๋ณํ๋ ๋ฌธ์ ์ ์ซ์๋ก ๋ ๋ฐฐ์ด๋ก ๋์ฌ ์ ์๋ ๋ชจ๋ ์ซ์๋ฅผ ์ป๋ ๋ฌธ์ ์ ๋๋ค.
๋ฌธ์ ์ ์กฐ๊ฑด์ธ ์ซ์๊ฐ ์ต๋ 7์๋ฆฌ๋๋ฌธ์ ๋ฏธ๋ฆฌ 10^7
์ดํ์ ๋ชจ๋ ์์๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ๋จผ์ ์งํํฉ๋๋ค. ์ฌ๊ธฐ์ 2๋ถํฐ ์์ํ๋ ์ฐ์๋ ์์ฐ์๋ฅผ ๋ฏธ๋ฆฌ ์จ ๋๊ณ , ์ฒ์ ๋ํ๋๋ ์์ ๋ฐฐ์๋ค์ ๋ชจ๋ ์ง์ฐ๋ ์์ผ๋ก ์์๋ฅผ ๋จ๊ธฐ๋ ๋ฐฉ์์ธ ์๋ผํ ์คํ
๋ค์ค์ ์ฒด๋ฅผ ์ด์ฉํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ๋์ฌ ์ ์๋ ๋ชจ๋ ์ซ์๋ฅผ ์ฐพ์ ๋ค ๊ทธ ์ซ์๊ฐ ๊ฐ๊ฐ ์์์ธ ์ง ํ์ธํ๋ ์์ผ๋ก ํธ๋ ๋์ ์ ๋ ๋น ๋ฅธ ๋ฐฉ๋ฒ์
๋๋ค.
๋ค์์ ์ซ์๋ก ๋ ๋ฐฐ์ด๋ก ๋์ฌ ์ ์๋ ์ซ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์
๋๋ค. Python์ ๋ด์ฅ ๋ชจ๋์ธ itertools
์ permutations
๋ฅผ ์ด์ฉํด์ ์์ด์ ์ฌ์ฉํ ์ ์์ต๋๋ค. permutation
์ ์ธ์๋ list
์ r
๋ก list
์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์์๋ฅผ ์๊ฐํด์ r
๊ฐ ๋ฝ๊ฒ ํฉ๋๋ค. ์ด๋ฅผ ์ด์ฉํ์ฌ 1๊ฐ๋ถํฐ numbers
์ ํฌ๊ธฐ๊น์ง permutations
๋ฅผ ์ด์ฉํด์ ์๋ก์ด ์ซ์ ์กฐํฉ์ ๋ง๋ญ๋๋ค. permutation
์ ๊ฒฐ๊ณผ๊ฐ์ธ tuple
์ list
๋ก ๋ฐ๊พธ๊ณ join
์ ์ด์ฉํด์ string
์ผ๋ก ๋ง๋ค๊ณ ์ต์ข
์ ์ผ๋ก int
๋ฅผ ์ด์ฉํด ์ ์๋ก ๋ง๋ค์ด์ค๋๋ค.
์ด์ ์ด ์ ์๊ฐ์ ๋ฏธ๋ฆฌ ์ ์ํด๋์ ์์๋ฅผ ํ๋ณํ๋ ๋ฐฐ์ด์ธ prime_lst
์ ๋ฃ์ด ์์ ์ฌ๋ถ๋ฅผ ํ์
ํ๊ณ ์ค๋ณต์ ๋ฐฉ์งํ๊ธฐ ์ํด set
์ ๋ฃ์ด์ค๋๋ค. ๋ง์ง๋ง์ผ๋ก set
์ ํฌ๊ธฐ๋ฅผ ๋ฐํํ๋ฉด ๋ฌธ์ ๊ฐ ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค.
'Algorithm > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ซ ์ ์ ์ผ๊ฐํ / python (0) | 2019.02.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] โพ ์ซ์ ์ผ๊ตฌ / python (4) | 2019.02.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ต๏ธโโ๏ธ ์์ ์ฐพ๊ธฐ / python (0) | 2019.02.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จ ์นดํซ ๋ฌธ์ / python (1) | 2019.02.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ฉโ๐ซ ๋ชจ์๊ณ ์ฌ / python (0) | 2019.02.15 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ซ ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ / Python (0) | 2019.02.15 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ซ ์ ์ ์ผ๊ฐํ / python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จโ๐ซ ์ ์ ์ผ๊ฐํ / python
2019.02.18 -
[ํ๋ก๊ทธ๋๋จธ์ค] โพ ์ซ์ ์ผ๊ตฌ / python
[ํ๋ก๊ทธ๋๋จธ์ค] โพ ์ซ์ ์ผ๊ตฌ / python
2019.02.15 -
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จ ์นดํซ ๋ฌธ์ / python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐จ ์นดํซ ๋ฌธ์ / python
2019.02.15 -
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ฉโ๐ซ ๋ชจ์๊ณ ์ฌ / python
[ํ๋ก๊ทธ๋๋จธ์ค] ๐ฉโ๐ซ ๋ชจ์๊ณ ์ฌ / python
2019.02.15