Algorithm/BAEKJOON

[백준 BOJ] 15655 N과 M(6) (python)

DongKeun2 2022. 3. 4. 22:27

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

 

15655번: N과 M (6)

N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열

www.acmicpc.net

 

🔥 작성 코드

N, M = map(int, input().split())
lst = list(map(int, input().split()))
arr = []
for i in range(1<<len(lst)):
    cnt = 0
    result = []
    for j in range(len(lst)):
        if i != 0:
            if i & (1<<j):
                cnt += 1
                result.append(lst[j])
                if len(result) > M:
                    break
    if len(result) == M:
        result.sort()
        arr.append(result)

arr.sort()
for i in range(len(arr)):
    print(*arr[i])

 

⭕ 해설

  1.  N과 M(2) 문제와 똑같습니다.
  2.  다만 이번에는 정렬된 수가 아니라 입력된 수를 받기 때문에 arr에 result를 담기 전에 result를 정렬합니다.

 

N과 M(2) 해설

2022.03.04 - [Algorithm/BAEKJOON] - [백준 BOJ] 15650 N과 M(2) (python)

 

[백준 BOJ] 15650 N과 M(2) (python)

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

dongkeun2.tistory.com