ํฐ์คํ ๋ฆฌ ๋ทฐ
[ํ๋ก๊ทธ๋๋จธ์ค][Python] ์์์ฐพ๊ธฐ
yeahajeong 2020. 6. 30. 17:46๋ฌธ์ ์ค๋ช
ํ์๋ฆฌ ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์์ต๋๋ค. ํฉ์ด์ง ์ข ์ด ์กฐ๊ฐ์ ๋ถ์ฌ ์์๋ฅผ ๋ช ๊ฐ ๋ง๋ค ์ ์๋์ง ์์๋ด๋ ค ํฉ๋๋ค.
๊ฐ ์ข ์ด ์กฐ๊ฐ์ ์ ํ ์ซ์๊ฐ ์ ํ ๋ฌธ์์ด numbers๊ฐ ์ฃผ์ด์ก์ ๋, ์ข ์ด ์กฐ๊ฐ์ผ๋ก ๋ง๋ค ์ ์๋ ์์๊ฐ ๋ช ๊ฐ์ธ์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- numbers๋ ๊ธธ์ด 1 ์ด์ 7 ์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- numbers๋ 0~9๊น์ง ์ซ์๋ง์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- 013์ 0, 1, 3 ์ซ์๊ฐ ์ ํ ์ข ์ด ์กฐ๊ฐ์ด ํฉ์ด์ ธ์๋ค๋ ์๋ฏธ์ ๋๋ค.
์ ์ถ๋ ฅ ์
numbersreturn
17 | 3 |
011 | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์์ #1
[1, 7]์ผ๋ก๋ ์์ [7, 17, 71]๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์์ #2
[0, 1, 1]์ผ๋ก๋ ์์ [11, 101]๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
- 11๊ณผ 011์ ๊ฐ์ ์ซ์๋ก ์ทจ๊ธํฉ๋๋ค.
๋์ ํ์ด
import itertools
def solution(numbers):
primeNuberlist =[]
perList = []
# ๋ฐ์ ๋ฌธ์์ด์ ๋ฆฌ์คํธ๋ก ๋ณํ (ํจ์๋ฅผ ๋ฐ๋ก ๋ง๋คํ์๊ฐ ์์๋ค)
strToList = list(numbers)
# ์์ด ๋ง๋ค๊ธฐ
for i in range(len(strToList)):
print(i+1)
perList += list(itertools.permutations(strToList, i+1))
# ์์์ธ์ง ํ๋ณํ๊ธฐ
for i in perList:
temp = list(i)
tempStr =""
for j in range(len(temp)):
tempStr += temp[j]
if isPrimeNumber(int(tempStr)):
primeNuberlist.append(int(tempStr))
# ์ค๋ณต๋ ๊ฐ์ ์์ ๊ธฐ ์ํด set์ผ๋ก ๋ณํ ํ ๋ค์ ๋ฆฌ์คํธ๋ก ๋ณํํจ
return len(list(set(primeNuberlist)))
# ์์์ธ์ง ํ๋ณํ๋ ํจ์
def isPrimeNumber(n):
if n <= 1:
return False
i = 2
while i < n:
if n % i == 0:
return False
i += 1
return True
๋ญ ์ด๋ป๊ฒ ํ๊ธดํ๋๋ฐ ๋ค๋ฅธ ์ฌ๋ ์ฝ๋๋ฅผ ๋ณด๋ ์์ฒญ ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ฒ๋ค ํธ์ จ๋๋ผ. ๋๋ ๊ทธ๋๋ ์ด ๋ฌธ์ ๋ฅผ ํ๋ฉด์ set์ด๋ permutations๋ ์๊ฒ๋์๊ณ ์กฐ๊ธ์ ์ฑ์ฅํจ....
๋ค๋ฅธ ์ฌ๋์ ํ์ด
from itertools import permutations
def solution(n):
a = set()
for i in range(len(n)):
print("์ฒ์: {}".format(map("".join, permutations(list(n), i + 1))))
print("int map์ผ๋ก ๊ฐ์ผ๊ฑฐ: {}".format(map(int, map("".join, permutations(list(n), i + 1)))))
print("set์ผ๋ก ๋ฐ๊พผ๊ฑฐ: {}".format(set(map(int, map("".join, permutations(list(n), i + 1))))))
a |= set(map(int, map("".join, permutations(list(n), i + 1))))
print("a์ถ๋ ฅ:{}\n".format(a))
# 1์ ์ ์ธ
a -= set(range(0, 2))
print("์ฐจ์งํฉ์ผ๋ก ๋บ๊ฑฐ : {}".format(a))
# int(max(a) ** 0.5) + 1 ์ ์ด๋ฐ์์ ์ฌ์ฉํ๋ ๊ฑธ๊น(๋ฒ์๋ฅผ ์ ๊ณฑ๊ทผ ์ฌ์ฉํ๋์ด์ ?)
# ์๋ผํ ์คํ
๋ค์ค์ ์ฒด
for i in range(2, int(max(a) ** 0.5) + 1):
print("i : {}".format(i))
# i์ ๋ฐฐ์๋ฅผ ์ ๊ฑฐํ๊ธฐ
a -= set(range(i * 2, max(a) + 1, i))
print("a : {}".format(a))
return len(a)
n = "17"
solution(n)
๊ทธ๋ฅ ์ฝ๋๋ฅผ ๋ด์๋ ๋ชจ๋ฅด๊ฒ ์ด์ ์ฃ๋ค ์ถ๋ ฅํด์ ๋์ผ๋ก ํ์ธ์ ํด๋ดค๋ค.
์๋ผํ ์คํ ๋ค์ค์ ์ฒด
์์๋ 1๊ณผ ์๊ธฐ ์์ ๋ง์ ๊ฐ์ง๋ ์ ์๋ฅผ ๋งํ๋ค. ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ผ๊ณ ๋ถ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด ์์๋ฅผ ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค.
- 1์ ์์๋, ํฉ์ฑ์๋ ์๋ ๊ธฐ์ด์์ด๊ธฐ ๋๋ฌธ์ 1์ ์ ๊ฑฐํ๋ค.
- 2๋ ์์์ด๋ฏ๋ก 2๋ฅผ ๋ค๋ฅธ๊ณณ์ ๊ธฐ๋กํด๋๋ค.
- ์๊ธฐ ์์ (2)๋ฅผ ์ ์ธํ 2์ ๋ฐฐ์๋ฅผ ๋ชจ๋ ์ง์ด๋ค.
- ๋จ์์๋ ์์์ 2 ๋ค์ ์์ธ 3๋ถํฐ ์งํ์ ์์ํ๋ค.
- 3์ ์์์ด๋ฏ๋ก 2๋ฅผ ๊ธฐ๋กํ๊ณณ์ ๊ธฐ๋กํ๋ค.
- ์๊ธฐ ์์ (3)์ ์ ์ธํ 3์ ๋ฐฐ์๋ฅผ ๋ชจ๋ ์ง์ด๋ค.
- 3์ ๋ค์ ์๋ 4์ด์ง๋ง 2์ ๋ฐฐ์๋ก 2๋ฒ์์ ์ง์์ก์ผ๋ ๋จ์์๋ ์ ์ค 3์ ๋ค์ ์์ธ 5๋ถํฐ ์งํ์ ์์ํ๋ค.
- 5๋ ์์์ด๋ฏ๋ก 2์ 3์ ๊ธฐ๋กํ ๊ณณ์ ๊ธฐ๋กํ๋ค.
- ์๊ธฐ ์์ ์ ์ ์ธํ 5์ ๋ฐฐ์๋ฅผ ๋ชจ๋ ์ง์ด๋ค.
- ์ ๊ณผ์ ์ ๋๊น์ง ๋ฐ๋ณตํ๋ฉด ๊ตฌํ๋ ๊ตฌ๊ฐ์ ๋ชจ๋ ์์๊ฐ ๋จ๋๋ค.
์๋ผํ ์คํ ๋ค์ค์ ๊ณต์์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ์ซ์๋ฅผ ๋ค ๊ฒ์ฌํ ํ์์์ด ๊ณ์ฐ์ ๋ฒ์๋ฅผ ์ค์ฌ ๋น ๋ฅด๊ฒ ๊ตฌํ ์ ์๋ค. ๋ง์ฝ 120๊น์ง์ ์ ์ค ์์๋ฅผ ๊ตฌํ๋คํ๋ฉด 120๊น์ง ๊ฐ ํ์์์ด 11^2 > 120 ์ด๋ฏ๋ก 11๋ณด๋ค ์์ ์์ ๋ฐฐ์๋ค๋ง ์ง์๋ ์์๋ฅผ ๊ตฌํ ์ ์๋ค. ๊ทธ๋์ ์์์ ๋ฃจํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
'(๊ตฌ)์๋ฃ๊ตฌ์กฐ&์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค][Python] H-index (0) | 2020.07.02 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค][Python] ๊ฐ์ฅ ํฐ ์ (2) | 2020.07.01 |
[ํ๋ก๊ทธ๋๋จธ์ค][Python] ๋ชจ์๊ณ ์ฌ (0) | 2020.06.30 |
ํ (Heaps) (0) | 2020.06.29 |
์ด์ง ํ์ ํธ๋ฆฌ (Binary Search Trees) (0) | 2020.06.27 |
- Total
- Today
- Yesterday
- tomcat์ค์น
- ๊ฒ์๋ฌผ ์ญ์
- Java
- ๊ฒ์๋ฌผ์กฐํ
- ๋ถํธ ์๋์์ฑ
- ์ ์ฒด๊ฒ์๋ฌผ ์กฐํ
- ์ดํด๋ฆฝ์ค ํ๊ธ ์ธ์ฝ๋ฉ
- mysql์ค์น
- java ํ๊ฒฝ๋ณ์
- ๋ณ๋ช ์ฒ๋ฆฌ
- ์จ๋ฆฌ์์ค
- ๊ฒ์ํ ์ญ์
- ์๋ฐ
- ์๋ฃ๊ตฌ์กฐ
- ๊ฒ์ํ ์กฐํ
- ๊ฐ๋ฐํ๊ฒฝ๊ตฌ์ถ
- ์ดํด๋ฆฝ์ค ์ค์น
- ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ๋ฐ
- ๊ฒ์ํ๋ง๋ค๊ธฐ
- ์คํ๋ง๋ถํธ ์๋์์ฑ
- java jdk ์ค์น
- typeAliases
- Algorithm
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |