728x90
import sys

data = [list(map(int, x.strip().split())) for x in sys.stdin.readlines()]

def go(current_list, remainder_list):
    # 로또 번호를 여섯개 이상 넣은 경우
    if len(current_list) > 6:
        return None

    # 여섯개 추첨
    if len(current_list) == 6:
        print(' '.join([str(x) for x in current_list]))

    # 아직 숫자가 모자르면
    if 0 <= len(current_list) < 6:
        # 남은 숫자가 있다면
        if len(remainder_list):
            for idx, val in enumerate(remainder_list):
                go(current_list + [val], remainder_list[(idx + 1):])

for ind, list_ in enumerate(data):
    if list_[0] == 0:
        exit()
    else:
        if ind != 0:
            print(' ')
        go([], list_[1:])
  • 포인트
    • 첫 번호을 기준으로 dynamic programming
728x90

'Algorithm-Problems > 백준' 카테고리의 다른 글

[백준][9613] GCD 합  (0) 2022.05.08
[백준][9095] 1, 2, 3 더하기  (0) 2022.05.08
[백준][6588] 골드바흐의 추측  (0) 2022.05.08
[백준][4963] 섬의 개수  (0) 2022.05.08
[백준][2667] 단지 번호 붙이기  (0) 2022.05.08

+ Recent posts