๋ฌธ์ ์ค๋ช
ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์
๋๋ค.
numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
"013"์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข
์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์๋ค๋ ์๋ฏธ์
๋๋ค.
์ ์ถ๋ ฅ ์
numbers | return |
---|---|
"17" | 3 |
"011" | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ #1
[1, 7]์ผ๋ก๋ ์์ [7, 17, 71]๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์์ #2
[0, 1, 1]์ผ๋ก๋ ์์ [11, 101]๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
11๊ณผ 011์ ๊ฐ์ ์ซ์๋ก ์ทจ๊ธํฉ๋๋ค.
๋ฌธ์ ํ์ด
from itertools import permutations
def solution(numbers):
numbers= list(numbers)
answer = []
for i in range(1, len(numbers)+1):
#for๋ฌธ์ ์ด์ฉํ์ฌ numbers์ ๊ธธ์ด๊น์ง ์์ด๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ๋ฅผ ๋ง๋ ๋ค
answer += permutations(numbers, i) #append๋ฅผ ์ฌ์ฉํ๋ฉด X
#answer = list(permutations(len(numbers))
#โnumbers์ ๊ธธ์ด๋งํผ๋ง ์์ด์ด ๋ง๋ค์ด์ ธ ๊ณ์ ํ
์คํธ ์คํจ
an = []
for i in numbers:
an.append(int(i))
for i in answer:
an.append(int("".join(i))) #๋ง๋ค์ด์ง tuple์ join์ผ๋ก ๋ฌธ์์ด ๊ตฌ์ฑ
an = set(an)
n = []
for i in an: #์์๋ฅผ ๊ฑฐ๋ฅด๋ ๊ณผ์
b = 0
if i == 1 or i == 0:
b = 1
for j in range(2, int(i** 0.5)+1):
if i%j == 0:
b = 1
if b == 0:
n.append(i)
return len(n)
๋ค๋ฅธ ์ฌ๋ ํ์ด
from itertools import permutations
def solution(n):
a = set()
for i in range(len(n)):
a |= set(map(int, map("".join, permutations(list(n), i + 1))))
a -= set(range(0, 2))
for i in range(2, int(max(a) ** 0.5) + 1):
a -= set(range(i * 2, max(a) + 1, i))
return len(a)
์์ด(permutation)๊ณผ ์กฐํฉ(combination)
itertools ๋ชจ๋์ ์ด์ฉํ์ฌ ์์ฝ๊ฒ ์์ด๊ณผ ์กฐํฉ์ ๋ง๋ค ์ ์๋ค
import itertools
list = ['A', 'B', 'C']
itertoos.permutation(list, r)
์์ด : permutation, r-๊ธธ์ด ํํ๋ค, ๋ชจ๋ ๊ฐ๋ฅํ ์์, ๋ฐ๋ณต๋๋ ์์ ์์
์กฐํฉ : combination, r-๊ธธ์ด ํํ๋ค, ์ ๋ ฌ๋ ์์, ๋ฐ๋ณต๋๋ ์์ ์์