Chapter6. ์์ ํ์
[๋ฌธ์ 22] ์์์ฐพ๊ธฐ - Level2
ํ ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข
์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ ์์ต๋๋ค. ํฉ์ด์ง ์ข
์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข
์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข
์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์
๋๋ค.
- numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- "013"์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข
์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ ์๋ค๋ ์๋ฏธ์
๋๋ค.
- 1. ์์์ธ์ง ํ๋ณํ๋ ํจ์๋ฅผ ๋ง๋ญ๋๋ค.
def checPrime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
- 2. ์ฃผ์ด์ง ์ข
์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ๋ชจ๋ ์ซ์๋ฅผ ์ฐพ์ต๋๋ค.
from itertools import permutations
for i in range(1, len(numbers) + 1):
num.append(list(permutations(numbers, i)))
num = [int(''.join(y)) for x in num for y in x]
- 3. 1๋ฒ๊ณผ 2๋ฒ์ ์ฌ์ฉํ์ฌ ๋์จ ์์ ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ๊ณ์ฐํฉ๋๋ค.
for i in num:
if checkPrime(i):
answer.append(i)
return len(set(answer))
//์ต์ข
์ ๋ต//
from itertools import permutations
def checPrime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def solution(numbers):
answer = []
numbers = list(numbers)
#prime = primes(10 ** len(numbers) - 1)
num = []
for i in range(1, len(numbers) + 1):
num.append(list(permutations(numbers, i))
num = [int(''.join(y)) for x in num for y in x]
for i in num:
if checkPrime(i):
answer.append(i)
return len(set(answer))