티스토리 뷰
//순열생성알고리즘
#include<iostream>
#include<string>
using namespace std;
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
void printSoon(int*arr,int N,int depth) {
//basis case에 출력하게 만들자.
if (depth == N) {
for (int i = 0; i < N; i++) cout << arr[i];
cout << endl;
}
for (int i = depth; i < N; i++) {
swap(arr[i], arr[depth]);
printSoon(arr, N, depth + 1);
swap(arr[i], arr[depth]);
}
}
int main() {
int arr[] = {1,2,3,4,5};
int N = 5;
printSoon(arr, N,0);
}
fix의 개념과 recursive를 사용하였음 다음 그림을 토대로 fix된 문자까지를 depth라는 변수를 사용하여 표현하였음.
나머지 부분은 부분순열로 출력하면 되므로 그것이 recursive한 논리가 됨 nPn순열만 고려했는데 nPk도 생각나면 추가하겠음
'기초 알고리즘 문제 풀이' 카테고리의 다른 글
6. UVa-11172 Relational Operator (0) | 2020.02.18 |
---|---|
5. X진수의 수 Y진수로 출력하기 (0) | 2020.02.18 |
4. All possible subset 문제 (0) | 2020.02.18 |
3. 임의의 정수 sequence에 대해 중복제거 정렬 sequence출력 (0) | 2020.02.18 |
2. 주어진 날짜에 대한 요일 출력 (0) | 2020.02.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 인덱스 이미지
- RGB이미지
- ML
- CS
- 영상구조
- Logistic Regression
- rnn
- 머신러닝
- 이산 신호
- 연속 신호
- 신경망
- 순환 신경망
- 이미지처리
- Neural Network
- 사진구조
- 컴퓨터 과학
- 컴퓨터과학
- NLP
- 신호 및 시스템
- 머신 러닝
- 딥러닝
- 영상처리
- CNN
- 이미지
- Andrew ng
- 매트랩
- gradient descent
- 밑바닥부터 시작하는 딥러닝
- 매트랩 함수
- 자연어 처리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함