[파이썬]백준 6603 로또

Byeonghyeon Kim·2021년 3월 23일
0

알고리즘문제

목록 보기
41/93
post-thumbnail

링크

백준 6603 로또


조합을 생성해서 구하는 문제이다.
재귀를 할때 i값을 1씩 증가시켜줘야 조합이 생성되는데
처음에 start 값을 1씩 증가시켜줘서 순열이 만들어져서 조금 헤맸다.
아직 익숙하지 않나보다. 더 연습하자


정답 코드

import sys

def comb(idx, start):
    if idx == 6:
        print(*sel)
    else:
        for i in range(start, N):
            if visit[i] == 0:
                sel[idx] = numbers[i]
                visit[i] = 1
                comb(idx + 1, i + 1)
                visit[i] = 0

while True:
    numbers = list(map(int, sys.stdin.readline().split()))
    if numbers == [0]:
        break
    N = numbers[0]
    numbers = numbers[1:]
    sel = [0] * 6
    visit = [0] * N
    tmp = []
    comb(0, 0)
    print('')

알게된 것👨‍💻

  • print(*컨테이너타입변수) 를 사용하면 컨테이너를 벗겨내고 출력할 수 있다!
  • ex) print(*[1, 2, 3]) -> 1 2 3
profile
자기 주도 개발전 (개발, 발전)

0개의 댓글