링크
백준 6603 로또
조합을 생성해서 구하는 문제이다.
재귀를 할때 i값을 1씩 증가시켜줘야 조합이 생성되는데
처음에 start 값을 1씩 증가시켜줘서 순열이 만들어져서 조금 헤맸다.
아직 익숙하지 않나보다. 더 연습하자
import sys
def comb(idx, start):
if idx == 6:
print(*sel)
else:
for i in range(start, N):
if visit[i] == 0:
sel[idx] = numbers[i]
visit[i] = 1
comb(idx + 1, i + 1)
visit[i] = 0
while True:
numbers = list(map(int, sys.stdin.readline().split()))
if numbers == [0]:
break
N = numbers[0]
numbers = numbers[1:]
sel = [0] * 6
visit = [0] * N
tmp = []
comb(0, 0)
print('')