[백준] 15654: N과 M (5) (Python)

JiKwang Jeong·2021년 12월 29일
0
post-custom-banner

문제📖

풀이🙏

  • data 리스트를 입력받고 낮은순으로 정렬한다.
  • data의 값을 사용했는지 체크하기 위해 visited를 사용하여 방문을 표시한다.
  • dfs를 이용하여 out 리스트에 data 값을 차례대로 넣고 방문 표시를 한다. 만일 out 리스트의 길이가 m과 같을 경우 출력한다.

코드💻

n, m = map(int, input().split())
data = list(map(int , input().split()))
data.sort()
visited = [False] * n
out = []

def dfs():
    if len(out) == m:
        print(' '.join(map(str, out)))
        return
    
    for i in range(n):
        if not visited[i]:
            out.append(data[i])
            visited[i] = True
            dfs()
            visited[i] = False
            out.pop()

dfs()
profile
기억보다 기록, 난리보다 정리
post-custom-banner

0개의 댓글