문제
https://www.acmicpc.net/problem/1182
풀이
주어진 숫자 집합 S 중에서 순서에 관계없이 숫자 6개를 뽑는 문제이다.
백트래킹으로 해결했다.
def choose_num(start) :
if len(selected_idx) == 6 : # 6개 숫자를 모두 뽑았으면 결과 출력
for idx in selected_idx :
print(S[idx], end = ' ')
print()
for i in range(start, k) : # 순서 상관없이 겹치지 않게 뽑아야 하므로 start 지정
selected_idx.append(i)
choose_num(i + 1)
selected_idx.pop()
while True :
k, *S = map(int, input().split())
if k == 0 :
break
selected_idx = [] # S의 인덱스를 뽑아서 저장
choose_num(0)
print()
728x90