์ฝํ
์ค๋น
<์์ ํ์> ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ 2. ์์ ์ฐพ๊ธฐ (์ค๋ต๋ ธํธ)
์๋๋ค
2022. 8. 13. 23:36
https://school.programmers.co.kr/learn/courses/30/lessons/42839
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
import itertools
import math
def solution(numbers):
answer = []
nums = [n for n in numbers] # numbers๋ฅผ ํ๋์ฉ ์๋ฅธ ๊ฒ
per = []
for i in range(1, len(numbers)+1): # numbers์ ๊ฐ ์ซ์๋ค์ ์์ด๋ก ๋ชจ๋ ๊ฒฝ์ฐ ๋ง๋ค๊ธฐ
per += list(itertools.permutations(nums, i)) # i๊ฐ์ฉ ์์ด์กฐํฉ
new_nums = [int(("").join(p)) for p in per] # ๊ฐ ์์ด์กฐํฉ์ ํ๋์ intํ ์ซ์๋ก ๋ณํ
new_nums = list(set(new_nums))
cnt = 0
print(new_nums)
for i in new_nums:
a = True
if i < 2:
continue
for j in range(2, int(math.sqrt(i))+1):
if i % j == 0: # ์์๊ฐ ์๋๋ฉด
a = False
break
if a:
print(333)
cnt += 1
return cnt
์ฃผ์ํ ์ :
์์ด์ ์ธ ๋, 1๊ฐ๋ถํฐ len(numbers)๊น์ง ๋ชจ๋ ์๋ฆฌ ์์ ์กฐํฉ์ ์์ฑํด์ผํ๋ฏ๋ก ๋ฐ๋ณต๋ฌธ์ ํตํด i๋งํผ ์์ด์ ๋ง๋ค์ด์ค๋ค. ์ด๋, list๋ก ๋ฌถ์ด์ผ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๋์๊ฐ๋ค.
์์ด์ ๊ฐ๊ฐ ๋ฆฌ์คํธ intํ์ผ๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ๋ค์ ํบ์๋ด์ผํ ๊ฒ ๊ฐ๋ค
์ดํ์ ๋ค์ ํ์ด๋ณผ ์์ ์ด๋ค.