황소개발자

백준 6603 파이썬 python : 독일 로또 @@황소처럼 우직하게@@ 조합 itertools combinations permutation 사용법 + 런타임에러 해결 본문

백준 문제 풀이

백준 6603 파이썬 python : 독일 로또 @@황소처럼 우직하게@@ 조합 itertools combinations permutation 사용법 + 런타임에러 해결

hjp845 2020. 2. 21. 03:19
반응형

역시 갓파이썬이죠

파이썬엔 itertools 란 모듈이 있습니다.

모르시는분 이제 알고 가세요. 화끈합니다.

import itertools
import sys
def sol():
    while True:
        s = sys.stdin.readline()
        if s.strip() == "0":
            return
        lst = list(map(int, s.split()))
        lst = lst[1:]
        lst = list(map(str, lst))
        combi = list(map(' '.join, list(itertools.combinations(lst, 6))))
        for numbers in combi:
            print(numbers)
        print()

sol()

우선 윗 코드는 정답코드입니다.

그리고 permutations, combinations 쓰세용 두번 쓰세용

남들 for문 돌려서 다 구할때, 한줄로 끝냅니다.

import itertools

a = [1, 2, 3, 4]

print(list(itertools.combinations(a, 2)))

위와 같이 치면

[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]

위와 같이 출력됩니다.

import itertools

a = [1, 2, 3, 4]

print(list(map(' '.join, list(itertools.combinations(map(str, a), 3)))))

위와 같이 치면

['1 2 3', '1 2 4', '1 3 4', '2 3 4']

위와 같이 출력됩니다.

combinations 나 permutaions 사용법은 같습니다.

다시 문제로 돌아와서

0일 때, 입력을 멈춰야되요.

input() 으로 받은거 strip() 으로 한 번 더 잘라주니까 런타임에러 안나더라고요.

아마 "0"이 아니라 "0 " 이렇게 오나봅니다.

반응형
Comments