[백준] 9461번 파도반 수열 - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/9461 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net #include using namespace std; long long p[101] = {0,1,1,1,}; int main() { int t; int n; cin >> t; for (int i = 0; i > n; if (p[n] != 0) { cout
[백준] 1003번 피보나치 함수 - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net #include #include using namespace std; int zero[50] = {1,0, }; int one[50] = { 0,1, }; int main() { int t; int n; cin >> t; for (int i = 0; i > n; for (int j = 2; j
[백준] 1149번 RGB거리 - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net #include #include using namespace std; int house[1001][3]; int main() { int n; int rgb_house[3]; house[0][0] = 0; house[0][1] = 0; house[0][2] = 0; cin >> n ; for (int i = 1; i > rgb_house[0] >> rgb_house[1] >> ..
[백준] 14889번 스타트와 링크 - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net #include #include using namespace std; int n; int arr[20][20] = {}; bool team[20] = {}; int result,min_sco = 999999; void dfs(int idx ,int cnt) { vector start; vector link; int start_sco = 0; int link_sco = 0; if ((n / 2) == cnt) { for..
[백준] 14888번 연산자 끼워넣기 - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net #include using namespace std; int max_n= -1000000001; int min_n = 1000000001; int n; int math[4]; int num[11]; void dfs(int answer ,int cnt) { if (cnt == n ) { if (answer >= max_n) { max_n = a..
[백준] 9663번 N-Queen - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net #include using namespace std; int arr[15]; int n, m,row; int answer = 0; bool check(int row) { for (int i = 0; i < row; i++) { if (arr[i] == arr[row] || abs(arr[i]- arr[row]) == row - i ) { return false; } } return true; } void dfs(..
[백준] 15651번 N과 M (3) - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net #include using namespace std; int arr[9]; bool visited[9] = {false,}; int n, m; void dfs(int cnt ) { if (cnt == m) { for (int i = 0; i < m; i++) { cout m; dfs(0); } n 과 m 시리즈를 모두 풀었다 마지막 문제는 좀 쉬웠다? 하지만 이 백트래킹 문제는 꼭 숙지해두자 재..
[백준] 15650번 N과 M (2) - c++
·
코딩/백준 - c++
https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net #include using namespace std; int arr[9]; bool visited[9] = {false,}; int n, m; void dfs(int num , int cnt ) { if (cnt == m) { for (int i = 0; i < m; i++) { cout m; dfs(1,0); } 재귀와 백트래킹은 너무 어렵다. ㅠㅠ 우선 이문제를 풀기 위해서는 문제의 이해가 ..