728x90
로또 1등 한번만 받아보고싶습니다.....
while True:
k, *S = map(int, input().split())
if k == 0: break
visited = [0] * k
def lotto(index=0, arr=[]):
if index == 6:
print(*arr)
return
else:
for i in range(index, k):
if visited[i] == 0:
if arr and arr[-1] > S[i]: continue
visited[i] = 1
lotto(index + 1, arr + [S[i]])
visited[i] = 0
lotto()
print()
백트래킹을 사용하여 모든 조합을 구하는 것처럼 만들었고, 그 안에서도 오름차순인 것만 뽑아내었다.
백트래킹중에서 조합구하는건 그래도 할만한데 다른것들이 너무 힘들다....
머리에 쥐날것같지만 손에 익을때 까지 문제를 계속 풀어야겠다
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 1759 암호만들기 (0) | 2021.03.05 |
---|---|
[백준] 3980 선발명단 (1) | 2021.03.05 |
[백준] 2583 영역구하기 (0) | 2021.03.04 |
[백준] N과 M (시리즈) (0) | 2021.03.04 |
[백준] 2798 블랙잭 (0) | 2021.03.04 |