[Silver III] Title: N과 M (1), Time: 156 ms, Memory: 36368 KB -BaekjoonHub
This commit is contained in:
26
백준/Silver/15649. N과 M (1)/N과 M (1).py
Normal file
26
백준/Silver/15649. N과 M (1)/N과 M (1).py
Normal file
@@ -0,0 +1,26 @@
|
||||
import sys
|
||||
from collections import defaultdict, deque
|
||||
from heapq import heapify, heappush, heappop
|
||||
|
||||
sys.setrecursionlimit(10**6)
|
||||
|
||||
input = sys.stdin.readline
|
||||
|
||||
N, M = map(int, input().split())
|
||||
visited = [False] * N
|
||||
S = [0] * M
|
||||
|
||||
def backtrack(length):
|
||||
if length == M:
|
||||
a = " ".join(str(x+1) for x in S)
|
||||
print(a)
|
||||
return
|
||||
|
||||
for i in range(N):
|
||||
if not visited[i]:
|
||||
visited[i] = True
|
||||
S[length] = i
|
||||
backtrack(length+1)
|
||||
visited[i] = False
|
||||
|
||||
backtrack(0)
|
||||
34
백준/Silver/15649. N과 M (1)/README.md
Normal file
34
백준/Silver/15649. N과 M (1)/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# [Silver III] N과 M (1) - 15649
|
||||
|
||||
[문제 링크](https://www.acmicpc.net/problem/15649)
|
||||
|
||||
### 성능 요약
|
||||
|
||||
메모리: 36368 KB, 시간: 156 ms
|
||||
|
||||
### 분류
|
||||
|
||||
백트래킹
|
||||
|
||||
### 제출 일자
|
||||
|
||||
2026년 3월 30일 18:50:27
|
||||
|
||||
### 문제 설명
|
||||
|
||||
<p>자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.</p>
|
||||
|
||||
<ul>
|
||||
<li>1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열</li>
|
||||
</ul>
|
||||
|
||||
### 입력
|
||||
|
||||
<p>첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)</p>
|
||||
|
||||
### 출력
|
||||
|
||||
<p>한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.</p>
|
||||
|
||||
<p>수열은 사전 순으로 증가하는 순서로 출력해야 한다.</p>
|
||||
|
||||
Reference in New Issue
Block a user