파이썬으로 처음 코딩 공부를 시작하는데 어렵네요..
이번에 파이썬을 시작으로 처음 코딩을 배우고 있습니다.
로또를 활용하여 리스트에서 모든 경우의 수를 뽑아내고
그 중 제가 원하는 범위만 추출하는 방식으로 프로그램을 만들고 있습니다.
그런데 이렇게 계속 if문을 반복해서 쓰는건 아닌 것 같아서 조언을 듣고 싶습니다.
보다 좋은 코드를 알려주시면 감사하겠습니다.
nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45
]
answer = []
def nCr(n, ans, r):
if n == len(nums):
if len(ans) == r:
temp = [i for i in ans]
answer.append(temp)
return
ans.append(nums[n])
nCr(n + 1, ans, r)
ans.pop()
nCr(n + 1, ans, r)
nCr(0, [], 6)
for row in answer:
if 21<sum(row)<37 :
if 14<row[0]+row[1]+row[2]<91 :
if 59<row[3]+row[4]+row[5]<131 :
if 29< max(row)+min(row) <66 :
if 16< max(row)-min(row) <44 :
print(len(row))
print(row[0], row[1], row[2],row[3], row[4],row[5])
'''
- 모든 경우의 수 //
- 총합 90~200 //
- 가장 높은 수와 낮은 수의 합(30~65) //
- 가장 높은 수와 낮은 수의 차(17~43) //
- 1, 2, 3 자리 수 합 15~90 //
- 4,5,6 자리 수 합 60~130 //
- 첫수합(십의 자리 수 더한 총 합 3~19)
- 끝수합(일의 자리 수 더한 총 합 11~38)
- 일의 자리가 3개 이상 같은 경우 제거
- 3의 배수 (6개 중 1개~4개 포함)
- 5의 배수 (6개 중 0개~3개 포함)
- 25 이상만 제거
- 25 이하만 제거
- 홀수만 제거 %2 = 1
- 짝수만 제거 %2 = 0
- 연속수 (4자리 이상 연속/ 1234,891011…)
- 같은 자릿수 4개 이상 제외
'''
#print(answer) #경우의 수 리스트
print(len(answer)) #총 경우의 갯수
from pprint import pprint
pprint(answer, indent=1, width=30)