https://www.acmicpc.net/problem/6603
로또 번호가
주어지는 번호들의 개수, 번호들
로 한 줄에 주어진다.
일단 이 모두를 arr에 입력받은 후,
주어지는 번호들의 개수와 번호들을 서로 다른 변수에 저장한다.
(하나는 int형 변수, 하나는 list)
첫 숫자가 0일때는 에러가 나기 때문에,
if로 따로 빼서 처리해줬다.
while True:
arr = list(map(int, input().split()))
n = arr[0]
if n == 0 and len(arr) == 1:
break
else:
lotto_numbers = arr[1:]
path = [0]*6
lotto(0, 0)
print()
로또는 6개의 숫자를 뽑는다.
따라서 level이 6일때 return 해준다.
그리고 로또는 숫자의 순서랑 당첨 여부랑 상관이 없다.
그래서 for문을 돌 때, start에서 n까지 돌고,
로또에서는 같은 숫자가 두번 나올 수 없기 때문에
다음 재귀로 들어갈 때 start를 i+1로 바꿔준다.
def lotto(level, start):
if level==6:
print(*path)
return
for i in range(start, n):
path[level] = lotto_numbers[i]
lotto(level+1, i+1)
전체 코드)
def lotto(level, start):
if level==6:
print(*path)
return
for i in range(start, n):
path[level] = lotto_numbers[i]
lotto(level+1, i+1)
while True:
arr = list(map(int, input().split()))
n = arr[0]
if n == 0 and len(arr) == 1:
break
else:
lotto_numbers = arr[1:]
path = [0]*6
lotto(0, 0)
print()
'파이썬 알고리즘' 카테고리의 다른 글
[파이썬] SWEA 11671 기지국 (0) | 2022.10.31 |
---|---|
[파이썬] 백준 1475번 방 번호 (0) | 2022.10.31 |
[파이썬] SWEA 11315 오목판정 (0) | 2022.10.25 |
[파이썬] 백준 7113 Rectangle (while문) (0) | 2022.10.25 |
[파이썬] 백준 7113 Rectangle (0) | 2022.10.25 |