티스토리 뷰
728x90
반응형
이번 문제는 BOJ 15649번 N과 M(1)과 동일한 문제입니다. 다만, 오름차순의 수열만을 출력해야하므로 재귀함수의 탈출조건에서 수열을 출력하기 전에 수열이 오름차순으로 정렬되어 있는지 확인하는 과정을 추가하여야 합니다.
BOJ 15649번에 대한 설명은 하단의 링크에서 확인부탁드립니다.
https://ark-hive.tistory.com/14
작성한 코드는 다음과 같습니다.
#include<stdio.h>
int N, M;
int sequence[10];
int check[10];
//back tracking은 모든 경우를 탐색할 때 사용하는 기법입니다.
//기능 특성상 재귀함수 형태로 구현됩니다.
void final_process(){
for (int i = 0; i < M-1; i++) {
printf("%d ", sequence[i]);
}
printf("%d\n", sequence[M - 1]);
}
void back(int depth) {
if (depth == M) {
for (int i = 0; i < M - 1; i++) {
if (sequence[i] > sequence[i + 1]) {
return;
}
}
final_process();
return;
}
else {
for (int i = 1; i <= N; i++) {
if (check[i] == 0) {
sequence[depth] = i;
check[i] = 1;
back(depth + 1);
check[i] = 0;
} else if (check[i] == 1) {
continue;
}
}
}
return;
}
int main(void) {
scanf("%d %d", &N, &M);
back(0);
}
728x90
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[알고리즘/문제풀이/BOJ 15652번] N과 M(4) (0) | 2021.06.23 |
---|---|
[알고리즘/문제풀이/BOJ 15651번] N과 M (3) (0) | 2021.06.21 |
[알고리즘/문제풀이/BOJ 15649번] N과 M (1) (0) | 2021.06.21 |
[알고리즘/문제풀이/BOJ 18870번] 좌표 압축 (0) | 2021.06.20 |
[알고리즘/문제풀이/BOJ 10814번] 나이 순 정렬 (0) | 2021.06.20 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 재귀함수
- 영어 어휘
- gem5
- 이진탐색
- 애니메이션
- 백트래킹
- 취미
- 스택
- 백준
- 큐
- backtracking
- 건이의 특제 떡국 끓이기
- 구조체
- C++
- Git
- BOJ
- recursive
- C언어
- Verilog
- 메이플스토리
- 이분법
- 완전탐색
- 알고리즘
- BFS
- 베릴로그
- 정렬
- 영화
- Push
- 너비우선탐색
- 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형
250x250