[백준] 15664 N과 M(10) (Python)

강민수·2023년 4월 20일

Algorithm-BACKJOON

목록 보기
33/55
post-thumbnail

문제 보기

문제 바로가기

풀이 코드

def solution(v):
    check = 0
    if len(answer) == m:
        print(*answer)
        return
    for i in range(v, n):
        if check != num[i]:
            check = num[i]
            answer.append(num[i])
            solution(i + 1)
            answer.pop()


n, m = map(int, input().split())
num = sorted(list(map(int, input().split())))
answer = []
solution(0)

이번 문제는 수열이 비내림차순이어야 한다고 한다. 그렇기 때문에 백트래킹을 걸어줄 때, 인덱스 값 + 1을 계속 해주면서 추가를 해주는데 중복은 없애서 출력해야 하기 때문에 값들을 check로 받아주면서 확인했다.

profile
능동적으로 개발 지식을 찾아다니는 백엔드 개발자입니다 😊 작성된 글에 대한 질문들 및 피드백은 언제나 환영입니다 :) 👌

0개의 댓글