8000 Update 15665.cpp · SooYeonida/basic-algo-lecture@18d58b8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 18d58b8

Browse files
Update 15665.cpp
1 parent ed98cef commit 18d58b8

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

0x0C/solutions/15665.cpp

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,38 @@
11
// Authored by : BaaaaaaaaaaarkingDog
22
// Co-authored by : -
3-
// http://boj.kr/****************
3+
// http://boj.kr/19fa292ed77f4bd48cbca269aafd4686
44
#include <bits/stdc++.h>
55
using namespace std;
66

7+
int n, m;
8+
int arr[10];
9+
bool isused[10];
10+
int num[10];
11+
12+
void func(int k){ // 현재 k개까지 수를 택했음.
13+
if(k == m){ // m개를 모두 택했으면
14+
for(int i = 0; i < m; i++)
15+
cout << num[arr[i]] << ' '; // arr에 기록해둔 인덱스에 대응되는 수를 출력
16+
cout << '\n';
17+
return;
18+
}
19+
int st = 0; // 시작지점, k = 0일 때에는 st = 0
20+
if(k != 0) st = arr[k-1] + 1; // k != 0일 경우 st = arr[k-1]+1
21+
for(int i = st; i < n; i++){
22+
if(!isused[i]){ // 아직 i가 사용되지 않았으면
23+
arr[k] = i; // k번째 인덱스를 i로 정함
24+
isused[i] = 1; // i를 사용되었다고 표시
25+
func(k+1); // 다음 인덱스를 정하러 한 단계 더 들어감
26+
isused[i] = 0; // k번째 인덱스를 i로 정한 모든 경우에 대해 다 확인했으니 i를 이제 사용되지않았다고 명시함.
27+
}
28+
}
29+
}
30+
731
int main(void){
832
ios::sync_with_stdio(0);
933
cin.tie(0);
10-
11-
}
34+
cin >> n >> m;
35+
for(int i = 0; i < n; i++) cin >> num[i];
36+
sort(num, num+n); // 수 정렬
37+
func(0);
38+
}

0 commit comments

Comments
 (0)
0