반응형
https://www.acmicpc.net/problem/15652
15652번: N과 M (4)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
내 코드
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
tmp = []
def dfs(start):
if len(tmp) == m:
print(' '.join(map(str, tmp)))
return
for i in range(start, n+1):
tmp.append(i)
dfs(i)
tmp.pop()
dfs(1)
dfs, 중복 오름차순 순열
15650번 문제와 마찬가지로 오름차순 순열을 출력해야 했다.
하지만 이건 중복해서 수가 나오는 것이 가능하다는게 달랐다.
그래서 dfs 함수에 start라는 변수 하나를 쥐어주고, dfs(1) 로 설정하여 1부터 시작하도록 했다.
그리고 start에 i를 넣어 계속 start 값을 i로 설정해주면서, i보다 큰 수가 나올수밖에 없게 했다.
성공!
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 15655번 : N과 M (6) (0) | 2023.06.26 |
|---|---|
| [Python][백준/BOJ] 15654번 : N과 M (5) (0) | 2023.06.26 |
| [Python][백준/BOJ] 15651번 : N과 M (3) (0) | 2023.06.26 |
| [Python][백준/BOJ] 15650번 : N과 M (2) (0) | 2023.06.26 |
| [Python][백준/BOJ] 15649번 : N과 M (1) (0) | 2023.06.25 |