본문 바로가기

알고리즘

[ Python ] 6603번 : 로또

728x90
반응형

코딩테스트 해설

백준 6603번: 로또

문제 유형 : 수학, 조합론, 백트래킹, 재귀

작성 코드

import sys
from itertools import combinations


def lotto(numbers):
    for combination in combinations(numbers, 6):
        print(' '.join(map(str, combination)))
    print()


while True:
    line = list(map(int, sys.stdin.readline().rstrip().split()))
    k = line[0]

    if k == 0:
        break

    numbers = line[1:]
    lotto(numbers)

접근 방식

  1. itertools의 combinations 를 사용하였습니다.
  2. 각 케이스들을 입력 받도록 하고, 해당 입력라인을 split 하여 배열의 형태로 만들어 0번 인덱스가 0이라면, 끝내도록 하였습니다.

개선 사항

  1. input을 매번 저렇게 입력 하도록 하니 너무 길어지는 것 같아, input을 sys.stdin.readline으로 재정의 해도 될 것 같습ㄴ다.

728x90
반응형