본문 바로가기
알고리즘/[python] 백준 BOJ

[python] 백준 15666 N과 M (12)

by Alan_Kim 2023. 1. 6.
728x90
반응형

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

 

15666번: N과 M (12)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

문제 해결

●아래 문제와 유사한 문제

https://thought-process-ing.tistory.com/90

 

[python] 백준 15665 N과 M (11)

https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.

thought-process-ing.tistory.com

 

●고른 수열이 비내림차순이다. (dfs를 쓸 때 i번째 원소를 가져왔으면 다음번에 i번째 이상의 원소를 가져와야한다.)

●오림차순으로 출력

 

CODE

import sys
input = sys.stdin.readline

def dfs(start, num):
    if len(num) == m:
        print(*num)
        return
    for i in range(start, len(A)):
        num.append(A[i])
        dfs(i, num)
        num.pop()
if __name__=="__main__":
    n, m = map(int, input().split())
    A = list(set(list(map(int, input().split()))))
    A.sort()
    num = []
    start = 0
    dfs(start, num)
728x90
반응형

댓글