문제 출처
https://www.acmicpc.net/problem/6603
풀이
1번 itertools를 이용
import sys
from itertools import combinations
#def list_int_input():
# return [int(i) for i in input().split(" ")]
while True:
input_list = list(map(int,sys.stdin.readline().split()))
if len(input_list)==1:
break
input_list.pop(0)
for com in combinations(input_list,6):
temp = list(map(str,com))
print(" ".join(temp))
print()
2번 재귀 함수 사용 깊이 우선 탐색
def print_lotto(idx, depth):
if depth == 6:
print(*result)
else:
for i in range(idx,list_len):
result.append(input_list[i])
print_lotto(i +1,depth+1)
result.pop()
while True:
input_list = input().split()
if len(input_list) == 1:
break
result = []
list_len = int(input_list[0])
input_list = input_list[1:]
print_lotto(0,0)
print()
'알고리즘 > 브루트 포스' 카테고리의 다른 글
2992-백준-크면서 작은 수 (0) | 2023.03.14 |
---|---|
15686-백준-치킨 배달 (0) | 2023.02.17 |