-
[알고리즘] 백준 10972번: 다음순열 - C++알고리즘/백준 2020. 12. 12. 21:33728x90
#include <cstdio> #include <algorithm> using namespace std; int main() { int N; int *a; int i, j; scanf("%d", &N); a = (int *)malloc(sizeof(int)*N); for (int k = 0; k < N; k++) { scanf("%d", &a[k]); } i = N; while (i--) { if(i < 1) { printf("%d", --i); return 0; } else if (a[i - 1] < a[i]) break; else /* Do nothing */; } j = N; while (j--) { if (a[i - 1] < a[j]) { swap(a[i - 1], a[j]); break; } } j = N - 1; while (i <= j) { swap(a[i], a[j]); i++; j--; } for (int k = 0; k < N; k++) { printf("%d ", a[k]); } return 0; }
github: github.com/waves123/10972/blob/master/10972/10972.cpp
728x90'알고리즘 > 백준' 카테고리의 다른 글
[알고리즘] 백준 1476번 : 날짜 계산 - C++ (0) 2020.12.12 [알고리즘] 백준 17974번: 모든 순열 - C++ (0) 2020.12.12 [알고리즘] 백준 11723번 : 집합 - C++ (0) 2020.12.12 [알고리즘] 백준 7785번: 회사에 있는 사람 -C/C++ (0) 2019.01.11 [알고리즘] 백준 1764번: 듣보잡 -C/C++ (0) 2019.01.09