본문 바로가기

algorithm47

모든 순열 - 10974 문제 : https://www.acmicpc.net/problem/10974 10974번: 모든 순열 N이 주어졌을 때, 1부터 N까지의 수로 이루어진 순열을 사전순으로 출력하는 프로그램을 작성하시오. www.acmicpc.net 소스 : #include #include using namespace std; int main() { int n; cin >> n; int num[8] = { 0 }; for (int i = 0; i < n; i++) { num[i] = i + 1; } do { for (int i = 0; i < n; i++) { cout 2019. 11. 19.
이전 순열 - 10973 문제 : https://www.acmicpc.net/problem/10973 10973번: 이전 순열 첫째 줄에 입력으로 주어진 순열의 이전에 오는 순열을 출력한다. 만약, 사전순으로 가장 처음에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 소스 : #include #include using namespace std; int main() { int n; cin >> n; int num[10000] = { 0 }; for (int i = 0; i > num[i]; } bool check = prev_permutation(num, &num[n]); if (check) { for (int i = 0; i < n; i++) { cout 2019. 11. 19.
다음 순열 - 10972 문제 : https://www.acmicpc.net/problem/10972 10972번: 다음 순열 첫째 줄에 입력으로 주어진 순열의 다음에 오는 순열을 출력한다. 만약, 사전순으로 마지막에 오는 순열인 경우에는 -1을 출력한다. www.acmicpc.net 소스 : #include #include using namespace std; int main() { int n; cin >> n; int num[10000] = {0}; for (int i = 0; i > num[i]; } bool check = next_permutation(num, &num[n]); if (check) { for (int i = 0; i < n; i++) { cout 2019. 11. 19.
차이를 최대로 - 10819 문제 : https://www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 소스 : #include #include using namespace std; int main() { int n; cin >> n; int num[8] = { 0 }; for (int i = 0; i > num[i]; } sort(num, &num[n]); int value = -87654321; int sum = 0; do { sum = 0; for (int i = 0;.. 2019. 11. 19.
1, 2, 3 더하기 - 9095 문제 : https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 1+1+1+1 1+1+2 1+2+1 2+1+1 2+2 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 www.acmicpc.net 소스 : #include using namespace std; int c; int arr[3] = { 1,2,3 };.. 2019. 11. 19.
일곱 난쟁이 - 2309 문제 : https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net 소스 : #include #include using namespace std; /* 제외할 인덱스 2개를 선택 후 총합이 100이되도록 찾도록 구현 */ int main() { int num[9]; int value[7]; for (int i = 0; i > num[i]; } sort(num, &num[9]); int total = 0; int index = 0; b.. 2019. 11. 19.
날짜 계산 - 1476 문제 : https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1 www.acmicpc.net 소스 : #include using namespace std; int main() { int e, s, m; cin >> e;.. 2019. 11. 19.
N과 M (12) - 15666 문제 : https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 코드 : #include #include using namespace std; int temp[10]; int value[10]; int num[10]; void solution(int start, int index, int n, int m) { //탈출조건 if (index == m) { for (int i = 0; i m; for (int.. 2019. 11. 14.
N과 M (11) - 15665 문제 : https://www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 코드 : #include #include using namespace std; int temp[10]; int value[10]; int num[10]; void solution(int index, int n, int m) { //탈출조건 if (index == m) { for (int i = 0; i m; for (int i = 0; i <.. 2019. 11. 14.