반응형
문제
https://www.acmicpc.net/problem/15663
15663번: N과 M (9)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
풀이
변수 temp가 추가되었다.
temp를 통해 직전에 구한 수랑 같은지 비교해준다.
코드
import sys
read = sys.stdin.readline
n, m = list(map(int, read().split()))
num = list(map(int, read().split())) #입력받은 수 저장
arr = [0 for _ in range(m)]
vis = [0 for _ in range(n)]
num.sort()
def choose(k):
if (k == m):
print(" ".join(map(str, arr)))
else:
temp = 0
for i in range(n):
if(vis[i]==0 and temp != num[i]):
vis[i] = 1
arr[k] = num[i]
temp = num[i]
choose(k + 1)
vis[i] = 0
choose(0)
반응형
'알고리즘' 카테고리의 다른 글
[백준/15665][파이썬] N과 M(11) (0) | 2023.04.11 |
---|---|
[백준/15664][파이썬] N과 M(10) (0) | 2023.04.11 |
[백준/15657][파이썬] N과 M(8) (0) | 2023.04.11 |
[백준/15656][파이썬] N과 M(7) (0) | 2023.04.11 |
[백준/15655][파이썬] N과 M(6) (0) | 2023.04.11 |