본문 바로가기

스터디 1일 1커밋

240530 [BOJ/백준] 15663. N과 M(9)

https://www.acmicpc.net/problem/15663


나의 코드

n, m = map(int, input().split())
arr = list(map(int, input().split()))

arr.sort()  # 사전 순으로 출력
visited = [0]*n
ans = []

def backtracking():
    if len(ans) == m:
        print(*ans)
        return

    check = 0
    for i in range(n):
        if not visited[i] and arr[i] != check:
            visited[i] = 1
            ans.append(arr[i])
            check = arr[i]
            backtracking()
            ans.pop()
            visited[i] = 0

backtracking()

 

결과


백트래킹 여전히 어렵군...ㅎㅎ 중복제거를 하기 위한 변수 설정 어렵다. 진짜 백트래킹문제 다시 풀어봐야겠다.