File tree Expand file tree Collapse file tree 2 files changed +58
-0
lines changed
백준/Silver/15652. N과 M (4) Expand file tree Collapse file tree 2 files changed +58
-0
lines changed Original file line number Diff line number Diff line change
1
+ let fs = require ( 'fs' ) ;
2
+ let input = fs . readFileSync ( '/dev/stdin' ) . toString ( ) . split ( '\n' ) ;
3
+
4
+ let [ N , M ] = input [ 0 ] . split ( ' ' ) . map ( Number ) ;
5
+
6
+ const arr = Array ( M ) . fill ( '' ) ;
7
+
8
+ const dfs = ( lev , start ) => {
9
+ if ( lev === M ) {
10
+ console . log ( arr . join ( ' ' ) ) ;
11
+ return ;
12
+ }
13
+ for ( let i = start ; i <= N ; i ++ ) {
14
+ arr [ lev ] = i ;
15
+ dfs ( lev + 1 , i ) ;
16
+ }
17
+ } ;
18
+ dfs ( 0 , 1 ) ;
Original file line number Diff line number Diff line change
1
+ # [ Silver III] N과 M (4) - 15652
2
+
3
+ [ 문제 링크] ( https://www.acmicpc.net/problem/15652 )
4
+
5
+ ### 성능 요약
6
+
7
+ 메모리: 13008 KB, 시간: 420 ms
8
+
9
+ ### 분류
10
+
11
+ 백트래킹
12
+
13
+ ### 제출 일자
14
+
15
+ 2025년 2월 4일 15:27:09
16
+
17
+ ### 문제 설명
18
+
19
+ <p >자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.</p >
20
+
21
+ <ul >
22
+ <li>1부터 N까지 자연수 중에서 M개를 고른 수열</li>
23
+ <li>같은 수를 여러 번 골라도 된다.</li>
24
+ <li>고른 수열은 비내림차순이어야 한다.
25
+ <ul>
26
+ <li>길이가 K인 수열 A가 A<sub>1</sub> ≤ A<sub>2</sub> ≤ ... ≤ A<sub>K-1</sub> ≤ A<sub>K</sub>를 만족하면, 비내림차순이라고 한다.</li>
27
+ </ul>
28
+ </li>
29
+ </ul >
30
+
31
+ ### 입력
32
+
33
+ <p >첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)</p >
34
+
35
+ ### 출력
36
+
37
+ <p >한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.</p >
38
+
39
+ <p >수열은 사전 순으로 증가하는 순서로 출력해야 한다.</p >
40
+
You can’t perform that action at this time.
0 commit comments