๐ฌ ๋ฌธ์ ์ค๋ช
ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข
์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข
์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข
์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข
์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ ์ ํ ์ฌํญ
- numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- "013"์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์๋ค๋ ์๋ฏธ์ ๋๋ค.
๐ก ๋์ ํ์ด
from itertools import permutations
answer = []
def solution(numbers):
nums = [n for n in numbers] # numbers๋ฅผ ํ๋์ฉ ์๋ฅธ ๊ฒ
per = []
for i in range(1, len(numbers)+1): # numbers์ ๊ฐ ์ซ์๋ค์ ์์ด๋ก ๋ชจ๋ ๊ฒฝ์ฐ ๋ง๋ค๊ธฐ
per += list(permutations(nums, i)) # i๊ฐ์ฉ ์์ด์กฐํฉ
new_nums = [int(("").join(p)) for p in per] # ๊ฐ ์์ด์กฐํฉ์ ํ๋์ intํ ์ซ์๋ก ๋ณํ
for n in new_nums:
for i in range(2, n + 1):
if n % i == 0:
break
elif n % i !=0:
answer.append(n)
# print(answer)
return len(set(answer)) # set์ ํตํด ์ค๋ณต ์ ๊ฑฐ ํ ๋ฐํ
๐ก ๋ค๋ฅธ ํด์ค
from itertools import permutations
import math
answer = []
def solution(numbers):
nums = [n for n in numbers] # numbers๋ฅผ ํ๋์ฉ ์๋ฅธ ๊ฒ
per = []
for i in range(1, len(numbers)+1): # numbers์ ๊ฐ ์ซ์๋ค์ ์์ด๋ก ๋ชจ๋ ๊ฒฝ์ฐ ๋ง๋ค๊ธฐ
per += list(permutations(nums, i)) # i๊ฐ์ฉ ์์ด์กฐํฉ
new_nums = [int(("").join(p)) for p in per] # ๊ฐ ์์ด์กฐํฉ์ ํ๋์ intํ ์ซ์๋ก ๋ณํ
for n in new_nums: # ๋ชจ๋ intํ ์ซ์์ ๋ํด ์์์ธ์ง ํ๋ณ
if n < 2: # 2๋ณด๋ค ์์ 1,0์ ๊ฒฝ์ฐ ์์ ์๋
continue
check = True
for i in range(2,int(n**0.5) + 1): # n์ ์ ๊ณฑ๊ทผ ๋ณด๋ค ์์ ์ซ์๊น์ง๋ง ๋๋์
if n % i == 0: # ํ๋๋ผ๋ ๋๋ ๋จ์ด์ง๋ค๋ฉด ์์ ์๋!
check = False
break
if check:
answer.append(n) # ์์์ผ๊ฒฝ์ฐ answer ๋ฐฐ์ด์ ์ถ๊ฐ
return len(set(answer)) # set์ ํตํด ์ค๋ณต ์ ๊ฑฐ ํ ๋ฐํ
๐๐ป ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ
'Coding > Code in the Morning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
220307_code everyday(์ซ์ ์นด๋2) (0) | 2022.03.07 |
---|---|
210127_Code in the morning (๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ) ๋ค์ ํ ๊ฒ (0) | 2022.01.27 |
220118_Code in the morning (๊ธฐ๋ฅ๊ฐ๋ฐ) (0) | 2022.01.18 |
220117_Code in the morning (์ฃผ์๊ฐ๊ฒฉ) (0) | 2022.01.17 |
220110_Code in the morning (0) | 2022.01.10 |