반응형
https://www.acmicpc.net/problem/15650
15650번: N과 M (2)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
내 코드
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
tmp = []
visited =[False for _ in range(101)]
def dfs(start):
if len(tmp) == m:
print(' '.join(map(str, tmp)))
return
for i in range(start, n+1):
if not visited[i]:
tmp.append(i)
visited[i] = True
dfs(i)
tmp.pop()
visited[i] = False
dfs(1)
dfs, 오름차순의 수열
15649 문제와 다른 점은 무조건 수열이 오름차순이어야 한다는 것이다. 그래서 start라는 변수를 설정하여 계속 증가하는 i를 start라는 변수에 넣고, start ~ n+1 이라는 for문을 돌렸다.
이로써 무조건 i보다 큰 수밖에 나올 수가 없는 것이다.
그래서 4 4를 입력하면 1234밖에 나오지 않는다.
반응형
'코딩테스트 대비 > 백준(BOJ)' 카테고리의 다른 글
| [Python][백준/BOJ] 15652번 : N과 M (4) (0) | 2023.06.26 |
|---|---|
| [Python][백준/BOJ] 15651번 : N과 M (3) (0) | 2023.06.26 |
| [Python][백준/BOJ] 15649번 : N과 M (1) (0) | 2023.06.25 |
| [Python][백준/BOJ] 4673번 : 셀프 넘버 (0) | 2023.06.25 |
| [Python][백준/BOJ] 1010번 : 다리 놓기 (0) | 2023.06.23 |