목차
https://www.acmicpc.net/problem/6603
우선, 나는 응애니까 파이썬에있는 combination 기능을 이용해서 풀어보려고 했다.
import sys
import itertools
result = []
while True:
input_str = sys.stdin.readline()
array = list(map(int, input_str.split()))
if array[0] == 0:
break
array2 = array.pop(0)
combi = []
for comb in itertools.combinations(array, 6):
combi.append(' '.join(map(str, comb)))
result.append(combi)
result.sort()
for i in range(len(result)):
print('\n'.join(result[i]))
print()
이게 내 처음 풀이인데,,,, 틀렸습니다! 작렬!!
0이 입력될 때까지 계속해서 숫자 배열을 입력받고 , 입력된 숫자 배열에 대해 가능한 모든 6개 숫자 조합을 한꺼번에 출력하려고 result 리스트에 append 한건데
다른 풀이들 보니까 한꺼번에 결과가 출력되는게 아니고 한줄씩 결과값을 출력하길래
import sys
import itertools
result = []
while True:
input_str = sys.stdin.readline()
array = list(map(int, input_str.split()))
if array[0] == 0:
break
array2 = array.pop(0)
for comb in itertools.combinations(array, 6):
print(' '.join(map(str,comb)))
print()
원래 내코드에서 바로 출력하도록 바꿨더니 맞았습니다! 작렬
읭,,,
from itertools import combinations
while True:
s = list(map(int, input().split()))
if len(s) == 1 and s == [0]: #입력 0 받으면 그만
break
k = s.pop(0) #맨앞 숫자 제거
for data in list(combinations(s, 6)):
print(*data)
print()
더 좋아보이는 풀이 있길래 가져옴
combination 안쓰고 백트랙킹 하는것도 연습해야하지만 지금은 combination 하고 있으니까,,,,
'알고리즘 > Python' 카테고리의 다른 글
[python] 백준 2447 : 별 찍기 -10 (재귀) (0) | 2024.02.21 |
---|---|
[python] 백준 4779 : 칸토어 집합 (재귀) (0) | 2024.02.19 |
[python] 백준 1541 : 잃어버린괄호 (그리디) (0) | 2024.02.15 |
제너레이터 표현식 (0) | 2024.02.12 |