728x90
https://www.acmicpc.net/problem/15654
- 코드
from sys import stdin
# N개의 자연수 중 M개 고르기
N,M = map(int,stdin.readline().split())
num = list(map(int,stdin.readline().split()))
# 사전 순 출력을 위해
num.sort()
# 수열, 수열에 들어간 요소 표시
def check(arr,visited):
# 수열의 길이가 M인가?
if len(arr) == M:
print(*arr)
return
# 수열에 들어간 요소표시를 위해 enumerate
for i,n in enumerate(num):
# 수열에 없다면
if visited[i] == 0:
# 수열에 넣기
visited[i] = 1
check(arr+[n],visited)
# 초기화
visited[i] = 0
check([],[0]*N)
https://www.acmicpc.net/problem/15655
- 코드
from sys import stdin
# N개의 자연수 중 M개 오름차순으로 고르기
N,M = map(int,stdin.readline().split())
num = list(map(int,stdin.readline().split()))
# 오름차순 정렬
num.sort()
def check(idx,arr):
# 수열의 길이가 M인가?
if len(arr) == M:
print(*arr)
return
for i in num[idx:]:
check(num.index(i)+1,arr+[i])
check(0,[])
https://www.acmicpc.net/problem/15656
- 코드
from sys import stdin
# N개의 자연수 중 M개 르기(중복 허용)
N,M = map(int,stdin.readline().split())
num = list(map(int,stdin.readline().split()))
# 오름차순 정렬
num.sort()
def check(arr):
# 수열의 길이가 M인가?
if len(arr) == M:
print(*arr)
return
for i in num:
check(arr+[i])
check([])
https://www.acmicpc.net/problem/15657
- 코드
from sys import stdin
# N개의 자연수 중 M개 오름차순으로 고르기(중복 허용)
N,M = map(int,stdin.readline().split())
num = list(map(int,stdin.readline().split()))
# 오름차순 정렬
num.sort()
def check(idx,arr):
# 수열의 길이가 M인가?
if len(arr) == M:
print(*arr)
return
for i in num[idx:]:
check(num.index(i),arr+[i])
check(0,[])
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[백준] 11047. 동전 0 - Python (0) | 2022.06.22 |
---|---|
[백준] 11399. ATM - Python (0) | 2022.06.22 |
[백준] 1916. 최소비용 구하기 - Python (0) | 2022.06.21 |
[백준] 17144. 미세먼지 안녕! - Python (0) | 2022.06.21 |
[백준] 1504. 특정한 최단 경로 - Python (0) | 2022.06.21 |
댓글