๐กsolutions )
โ itertools ๋ชจ๋์์ combination์ ์ฌ์ฉํ๊ธฐ ๋ณด๋ค๋ dfs๋ก ์ง์ ์กฐํฉ ํจ์๋ฅผ ๊ตฌํํ๋ค(๊ฒฝ์ฐ์ ์๋ค์ ์ค๋ณต ๋ถ๊ฐ)
โ ์์๋ ์ซ์ ๋ณธ์ธ๊ณผ 1๋ก๋ง ๋๋ ์ ์๋ ์ (1๊ณผ ๋ณธ์ธ๋ง ์ฝ์)
โ ์์์ธ์ง ์๋์ง ํ๋ณํ๋ ๋ฐฉ๋ฒ์ 2๋ถํฐ ์์ํด์ ํ๋ณํ๊ธฐ ์ํ ํด๋น ์ซ์๊น์ง๋ก ๋ฒ์ ์์ ์๋ ์ซ์๋ก ์ ๋ถ ๋๋์ด ๋ณด๊ณ , ๋๋์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด ์์๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋ณํ ์ ์๋ค. ์ฆ, ๋๋์ด ๋จ์ด์ง๋ ์๊ฐ ์๋ค๋ ๊ฒ์ ํด๋น ์ซ์๊ฐ ์์๋ผ๋ ๊ฒ.
โ ํจ์ ๊ตฌํ์ ์ ์ญ๋ณ์, ์ง์ญ๋ณ์ ์ฌ์ฉํ๋ ๊ฒ ์์ง ํท๊ฐ๋ฆฐ๋ค.
๐ซcode )
def solution(numbers):
# ์๋๋ ์ฃผ์ด์ง ์ซ์๋ก ๋ํ๋ผ ์ ์๋ ๋ชจ๋ ์ซ์์ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ ๋ก์ง(์ค๋ณต๋ถ๊ฐ)
def dfs(word):
if len(word) == k: # ๋ฌธ์๊ธธ์ด๊ฐ k์ด๋ฉด ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์ ๋ฃ๊ธฐ
result.add(int(word))
return
for i in range(n):
if visit[i] == 0: # ๋ฐฉ๋ฌธํ์ง ์์๋ค๋ฉด word๋ฌธ์์ด์ ๋ถ์ด๊ธฐ
visit[i] = 1
dfs(word + numbers[i])
visit[i] = 0 # ๋ฐฉ๋ฌธ ๋ฆฌ์คํธ ๋ณต๊ตฌ
result = set() # ์ค๋ณต์ ์์ ๊ธฐ ์ํด์ set ์๋ฃํ์ผ๋ก ์ค์
numbers = list(numbers)
n = len(numbers)
visit = [0] * n
for k in range(1, n + 1):
dfs("")
# ์ฌ๊ธฐ์๋ถํฐ ์์ ์ฐพ๋ ๋ก์ง
answer = 0
for i in result:
if i == 1 or i == 0:
continue
for j in range(2, i):
if i % j == 0:
break
else:
answer += 1
print(answer)
return answer
๐ description )
๋ฌธ์ ์ถ์ฒ : https://programmers.co.kr/learn/courses/30/lessons/42839?language=python3
๋ฌธ์ ์ค๋ชํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด 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์ ๊ฐ์ ์ซ์๋ก ์ทจ๊ธํฉ๋๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ํฐ ์/ ํ์ด์ฌ/ Python/ ์ ๋ ฌ/ sort (0) | 2020.08.18 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] 2016๋ /ํ์ด์ฌ /Python (0) | 2020.08.17 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ตฌ๋ช ๋ณดํธ /ํ์ด์ฌ /python /ํ์๋ฒ (2) | 2020.08.14 |
[ํ๋ก๊ทธ๋๋จธ์ค] H-Index /ํ์ด์ฌ /Python /์ ๋ ฌ (0) | 2020.08.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ธฐ๋ฅ๊ฐ๋ฐ/ํ์ด์ฌ/python/์คํ, ํ (0) | 2020.08.12 |