[백준] 6603번 : 로또

뚝딱이 공학도·2022년 8월 3일
0

문제풀이_백준

목록 보기
157/160



문제



나의 답안

from itertools import combinations
import sys
input = sys.stdin.readline

while True:
    s=list(map(int,input().split()))
    k=s.pop(0)
    result=list(combinations(s,6))
    if k==0:
        break
    for i in result:
        for j in i:
            print(j,end=' ')
        print()
    print()

접근 방법

  • itertools의 조합 모듈을 이용해주었다.
  • 리스트로 숫자들을 입력받고 첫번 째 수(k)를 pop해준다.
  • combinations을 사용해 6개의 숫자를 인자로 갖는 조합을 구해주었다.

itertools

  • itertools는 파이썬에서 리스트의 조합을 구해주는 유용한 라이브러리이다.

  • permutations
    하나의 리스트 안에서 조합을 구할 때 사용, 순서를 고려한다.(순열)

from itertools import permutations
  • combinations
    하나의 리스트 안에서 조합을 구할 때 사용, 순서를 고려하지 않는다.
from itertools import combinations
  • product
    두개 이상의 리스트에서 조합을 구할 때 사용, 똑같은 것을 고를 수 있다.(중복 순열)
from itertools import product


  • 예시
#test
from itertools import permutations
from itertools import combinations
from itertools import product

arr=['가','나','다']
num=[1,2]

print('permutations: ', list(permutations(arr,2)))
print('combinations: ', list(combinations(arr,2)))
print('product: ', list(product(arr,num)))
print('repeat product: ', list(product(arr,repeat=2)))
#result
permutations:  [('가', '나'), ('가', '다'), ('나', '가'), ('나', '다'), ('다', '가'), ('다', '나')]
combinations:  [('가', '나'), ('가', '다'), ('나', '다')]
product:  [('가', 1), ('가', 2), ('나', 1), ('나', 2), ('다', 1), ('다', 2)]
repeat product:  [('가', '가'), ('가', '나'), ('가', '다'), ('나', '가'), ('나', '나'), ('나', '다'), ('다', '가'), ('다', '나'), ('다', '다')]

0개의 댓글