백준 python 기록

백준 파이썬 6603 로또

작지 2021. 9. 17. 11:21

백준 링크:https://www.acmicpc.net/problem/6603

 

6603번: 로또

입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로

www.acmicpc.net

예제 출력은 링크

 

백 트래킹문제이다.

import sys

m = 6

def dfs(a):
    if len(result) == m:
        for i in result:
            print(i,end=' ')
        print()

    for i in s:
        if i not in result and a < i:
            result.append(i)
            dfs(i)
            result.pop()

while True:
    s = list(map(int,sys.stdin.readline().split()))
    result=[]
    if s[0] == 0 and len(s) == 1:
        break
    s.pop(0)
    len_s= len(s)
    dfs(0)
    print()

 

n과m 시리즈와 매우 유사함.