[백준 6603] 로또

Junyoung Park·2022년 7월 5일
0

코딩테스트

목록 보기
485/631
post-thumbnail

1. 문제 설명

로또

2. 문제 분석

백트래킹 문제다. 조합을 백트래킹으로 푸는 방법은 check 불리언 값 참/거짓 변경과 함께 현재 어떤 인덱스까지 체크했는지 재귀 파라미터로 넘겨주는 것.

3. 나의 풀이

import sys

def get_lotto(cnt, num, start_idx):
    if cnt == 6:
        print(*num)
        return

    for i in range(start_idx, k):
        if not check[i]:
            check[i] = True
            get_lotto(cnt + 1, num + [numbers[i]], i)
            check[i] = False

while True:
    numbers = list(map(int, sys.stdin.readline().rstrip().split()))
    k = numbers.pop(0)
    if k == 0: break

    check = [False for _ in range(k)]
    get_lotto(0, [], 0)
    print()
profile
JUST DO IT

0개의 댓글