๋ฌธ์
ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- "013"์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์๋ค๋ ์๋ฏธ์ ๋๋ค.
์ฝ๋
import itertools
import math
def solution(numbers):
arr = []
answer = []
idx = 0
# numbers์ ๊ฐ ๋ฌธ์๋ฅผ ํ์ฉํด์ ๋์ฌ ์ ์๋ ๋ชจ๋ ์์ด ๊ตฌํจ.
for i in range(1,len(numbers)+1):
num = list(map(''.join, itertools.permutations(numbers,i)))
arr.append(num)
# 2์ฐจ์ ๋ฐฐ์ด 1์ฐจ์ ๋ฐฐ์ด๋ก ์ ํ.
arr = sum(arr,[])
arr = list(set(arr))
# ๋ฐฐ์ด ๋ด ์์ ์ค ์ฒซ ๋ฒ์งธ ๋ฌธ์๊ฐ 0 ์ด ์๋ ๊ฒฝ์ฐ๋ง ์ ์ํ์ผ๋ก ์ ํํด์ answer์ ์ถ๊ฐ.
for k in arr:
if k[0] == '0':
continue
else:
answer.append(int(k))
# ํน์ ์ซ์๊ฐ 2๋ฒ ์ด์ ๋ฐ๋ณต๋ ๊ฒฝ์ฐ ๋ฐฐ์ด ๋ด์ ๊ฐ์ ์๊ฐ ์ค๋ณตํด์ ์กด์ฌํ๊ฒ ๋๊ธฐ์ set๋ก ๋ฐ๊ฟ์ค.
answer = list(set(answer))
# ์์๋ฅผ ํ๋ณํ ๊ฒฝ์ฐ ํด๋น ์์ ์ ๊ณฑ๊ทผ ์ดํ๊น์ง๋ง ๋๋์ด๋ณด๋ฉด์ ์์๋ฅผ ํ๋ณํ๋ค.
for z in answer:
cnt = 0
sqrt = int(math.sqrt(z))
if z != 0 and z != 1:
for j in range(2,sqrt+1):
if z % j == 0:
cnt += 1
if cnt == 0:
idx += 1
return idx
๋ถ์ > ๊ฑฐ์ ๋ค ํ์์ ๋ ๊ณ์ ์๊ฐ ์ด๊ณผ๊ฐ ๋์ ์ด๋๊ฐ ๋ฌธ์ ์ธ์ง ์ฐพ๋๋ฐ์ ์๊ฐ์ด ๊ฝค๋ ์์๋์๋ค. ๊ฒฐ๊ตญ ์ฐพ์๋ธ ๊ฒ์ ์์๋ฅผ 1๋ถํฐ ์์ ๋ณด๋ค 1 ํฐ ์๊น์ง ๋ชจ๋ ๋ค ํ ๋ฒ์ฉ ๋๋ ๋ณด๋ ๊ณผ์ ์ด ํจ์จ์ฑ์ ์ ํ์ํจ๋ค ๊ฒ์ด์๋ค. ์ด๋ฒ์ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์๊ฒ๋ ๊ฒ์, ์์๋ฅผ ํ๋ณํ ๋ ์์ ์ ์ ๊ณฑ๊ทผ ์ดํ๊น์ง๋ง ๋๋์ด์ ๋๋์ด์ง๋ ํ์๋ฅผ ์ฆ๊ฐ์ํค๊ณ ๊ทธ ๋๋์ด์ง ํ์๊ฐ 0์ด๋ฉด ์์๊ฐ ๋๋ค๋ ๊ฒ์ด๋ค. 24์ ๊ฒฝ์ฐ 2 * 12, 3 * 8, 4 * 6 ์ผ๋ก ๋ํ๋ผ ์ ์๊ธฐ ๋๋ฌธ์ 2,3,4 ๋ก๋ง ๋๋์ด๋ณด์๋ ์ด ์๊ฐ 6,8,12 ๋ก ๋๋์ด ๋จ์ด์ง๋ ์ง ์ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์์์ธ 11์ ๊ฒฝ์ฐ ์ ๊ณฑ๊ทผ์ด 3.3XX ๊ฐ ๋๊ธฐ ๋๋ฌธ์ 3๊น์ง๋ง ๋๋์ด๋ณด์๋ ์ด ์๊ฐ ์์์์ ์ ์ ์๋ค. ์ด๋ฌํ ํน์ง์ ํ์ฉํด์ ์์๋ฅผ ํ๋ณํ๋ ค๋ ์๊ฐ 0๊ณผ 1์ด ์๋ ๋ 2๋ถํฐ ์์ ์ ์ ๊ณฑ๊ทผ ์ดํ๊น์ง์ ์๋ก ์์ ์ ๋๋์ด์ ๋๋์ด ๋จ์ด์ง๋ ํ์๋ฅผ ํตํด ์์๋ฅผ ํ๋ณํ ์ ์๋ค.
* ์ฐธ๊ณ ํ ๊ธ
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ํฐ์ผ๋ชฌ (0) | 2022.05.02 |
---|---|
[Programmers] 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2022.05.02 |
[Programmers] ๋ค์ ํฐ ์ซ์ (0) | 2022.05.01 |
[Programmers] ์ ๊ท ์์ด๋ ์ถ์ฒ (0) | 2022.05.01 |
[Programmers] ์์ด ๋๋ง์๊ธฐ (0) | 2022.05.01 |