문제
https://www.acmicpc.net/problem/6603
코드
import sys
def set(start, index):
if index == 6:
for i in range(6):
print(f'{temp[i]}', end=' ')
print()
for i in range(start, len(lst)):
temp[index] = lst[i]
set(i+1, index+1)
temp = [0] * 13
while True:
lst = list(map(int, sys.stdin.readline().rstrip().split()))
if lst[0] == 0:
break
del lst[0]
set(0, 0)
print()
집합 최대 개수가 12개이기 때문에 temp의 최대 길이를 13으로 해줍니다.
그리고 while 반복문을 돌려서 0이 입력됐을 때만 종료하게 만들어줍니다.
그렇지 않은 경우에는 lst[0]이 필요 없기 때문에 삭제해주고 set함수를 호출합니다.
마지막으로 각 테스트 케이스 사이에 빈 줄을 출력하기 때문에 print()를 해줍니다.
set함수에서
for i in range(start, len(lst)):
temp[index] = lst[i]
set(i+1, index+1)
이 부분을 직접 해보시는게 좋을 것 같습니다.
'IT > 알고리즘' 카테고리의 다른 글
알고리즘 - 단순 삽입 정렬 (0) | 2020.11.23 |
---|---|
알고리즘 - 버블 정렬 (0) | 2020.11.20 |
알고리즘 - 재귀 알고리즘(3) (1) | 2020.11.19 |
백준 - 17478번 (0) | 2020.11.18 |
백준 - 1914번 (0) | 2020.11.18 |
댓글