반응형
https://www.acmicpc.net/problem/6603
이 문제는 전에 풀었던 문제처럼 브루트 포스의 재귀 방식을 이용해서 풀었다.
visited를 통해 그 수를 방문했는지 확인하였고 i라는 인덱스를 통해 어디서부터 방문해야할지 결정했다(테스트케이스가 오름차순으로 되어있고 중복이 없기 때문).
항상 재귀 후에는 전에 사용했던 res값이나 visited를 초기화해주었다.
import sys
input= sys.stdin.readline
def recur(visited,i,cnt,res):
if cnt==6:
print(" ".join(map(str,res)))
return
for idx in range(i,k+1):
if not visited[idx]:
visited[idx]=1
res.append(ary[idx])
recur(visited,idx+1,cnt+1,res)
res.pop()
visited[idx]=0
while True:
ary = list(map(int,input().split()))
if ary[0]==0:
break
k=ary[0]
visited=[0]*(k+1)
recur(visited,1,0,[])
print()
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
Python 2529번 부등호 (0) | 2022.07.31 |
---|---|
Python 1182번 부분수열의 합 (0) | 2022.07.31 |
Python 1759번 암호 만들기 (0) | 2022.07.28 |
2096번 파이썬 (0) | 2022.05.04 |
1309번 파이썬 (0) | 2022.04.13 |