본문 바로가기
파이썬알고리즘

백준 6603 파이썬

by zho 2023. 2. 6.

https://www.acmicpc.net/problem/6603

 

6603번: 로또

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

www.acmicpc.net

def dfs(start, depth):
    if depth == 6:
        for i in range(6):
            print(answer[i], end=' ')
        print()
        return
    for i in range(start, len(S)):
        answer[depth] = S[i]
        dfs(i + 1, depth + 1)
answer = [0 for i in range(13)]
while 1:
    S = list(map(int, input().split()))
    K = S[0]
    if K == 0:
        break
    del S[0]
    dfs(0, 0)
    print()

DFS(깊이 우선 탐색)를 이용해서 푸는 문제이다.

 

for i in range(start, len(S)):
	answer[depth] = S[i]
    dfs(i + 1, depth + 1)

이 부분만 이해할 수 있다면 이 문제는 쉽게 해결할 수 있을 것이다!

728x90

'파이썬알고리즘' 카테고리의 다른 글

백준 10815 파이썬 (이진탐색, Binary Search)  (1) 2024.06.14
백준 2805 파이썬  (0) 2023.12.21
Baekjoon 2775 Python  (0) 2022.11.20
Baekjoon 5355 Python  (0) 2022.11.19
백준 10816 파이썬  (0) 2022.05.26