자기개발👨‍💻/코딩 알고리즘

[python] 백준 6603 로또

천숭이 2020. 8. 12. 20:25

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

 

6603번: 로또

문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는

www.acmicpc.net

from itertools import combinations

while(1):
    inp = list(map(int,input().split()))
    number = inp[0]
    if number==0:
        break
    inp= inp[1:]
    arr=inp[:]
    tmp = list(combinations(arr,6))

    for i in range(len(tmp)):
        for j in range(6):
            print(tmp[i][j], end=' ')
        print()
    print()

입력이 7 1 2 3 4 5 6 7 이면 맨 앞 숫자를 number에 저장을 하고

나머지는 슬라이싱을 이용해 arr에 따로 저장한다.

combinations( 사용할 리스트, 조합해서 나오는 원소 개수) 라는 조합함수를 사용할 것입니다.

print()에는 줄바꿈까지 자동으로 포함되기 때문에 end=' '를 이용해 맨끝자리는 줄바꿈이 아니라 띄어쓰기로 바뀌게 되고 모든 조합을 출력하면 print()를 이용해 줄을 바꾼다.