728x90 반응형 재귀33 백준 10819 차이를 최대로 https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 모든 순열을 구해서 문제의 규칙대로 더했을때 최대가 되는 값을 뽑아내면 되는 간단한 문제 입니다. 모든 순열을 구하는 방법은 아래와 같이 하셔도 되고 다른 방법이 있다면 그방법을 이용하시면됩니다. 왜 순열은 구할때 다중 포문을 이용하지 않았는지 간단히 말쓰드리면 예전에 이런 방식을 할때 다중포문으로 구현을 하려했습니다. 위 문제와 같이 N이 8이면 적어도 8중포문이상 사용을 해야 가능한데 N이 들어올때마다 다중.. 2019. 7. 23. 백준 10973 이전 순열 https://www.acmicpc.net/problem/10973 10973번: 이전 순열 첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 이전 순열은 아래와 같이 prev_mutation을 이용해서 아주 간단히 구현이 가능합니다 하지만 규칙을 찾아 하는 방법도 있으니 알아볼까요? 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 #include #include using namespace std; int ret[10004]; int N; void init() { scanf("%d", &N); for (int i.. 2019. 7. 23. 백준 10972 다음 순열 https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 정말 쉽게 아래와 같이 next_premutation을 이용해서 하는 방법입니다. 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 #include #include using namespace std; int ret[10004]; int N; void init() { scanf("%d", &N); for (int i = 1; i = ci; y--, ten *= 10) { sum_.. 2019. 7. 23. 백준 10974 모든 순열 Íhttps://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 모든 순열은 정말 설명할것이 하나도 없는게 지금까지 백트래킹을 같이 해오셨다면 바로 풀수 있는 문제 입니다. 여기서 원하는 조건은 1 2 3 인경우 이런식으로 나오게 하는것으로 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 #include int N; int num[9]; int chk[9]; void dfs(int idx) { if (idx == N+1) { for (int y = 1; y 2019. 7. 23. 이전 1 ··· 5 6 7 8 9 다음 728x90 반응형