본문 바로가기

728x90
반응형

Algorithm/C++

(111)
[C++] 합집합 찾기 #include using namespace std; int get_parent(int v[], int x) { //부모 V를 구한다, 작은 값을 갖도록함. if (v[x] == x) return x; return v[x] = get_parent(v, v[x]); } void union_parent(int v[], int x, int y) { //V 연결하기. x = get_parent(v, x); y = get_parent(v, y); if (x
[C++] 1431 : 시리얼 번호 https://www.acmicpc.net/problem/1431 1431번: 시리얼 번호 첫째 줄에 기타의 개수 N이 주어진다. N은 50보다 작거나 같다. 둘째 줄부터 N개의 줄에 시리얼 번호가 하나씩 주어진다. 시리얼 번호의 길이는 최대 50이고, 알파벳 대문자 또는 숫자로만 이루어 www.acmicpc.net #include #include #include using namespace std; int n; vector v; int sum(string a) { //숫자 합 sum 구하기 int n = a.length(), sum = 0; for (int i = 0; i = 0 && a[i] - '0' n; //개수 입력 string input; //기타번호 입력 for (int i = 0; i > ..
[C++] 계수 정렬 #include using namespace std; //조건 : 5 이하의 자연수 int main(void) { int arr[40] = { //정렬할 배열 1,2,4,5,3,2,1,4,5,2, 1,3,5,1,2,3,4,5,1,1, 2,3,3,2,5,5,1,4,1,2, 3,4,4,2,3,5,4,1,4,1 }; int sort[6] = {}; //계수 정렬을 하기 위한 배열. 0으로 초기화. index는 1~5까지만 사용(index 0은 사용x) for (int i = 0; i
[C++] 1003 : 피보나치 함수 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net #include using namespace std; int T, n; int zero = 0, one = 0; int fibonacci(int n) { if (n == 0) { zero++; return 0; } else if (n == 1) { one++; return 1; } else return fibonacci(n - 1) + fibonacci(n - 2); } int main(void) { cin >> T; for (int i = 0; i > n; fibonacci(n); cout
[C++] 2580 : 스도쿠 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net #include using namespace std; int sdk[10][10] = {}; //스도쿠 판 bool row[10][10] = {}, column[10][10] = {}, square[10][10] = {}; //확인용으로 (행), (열), (3x3사각형). 첫번째 index는 순서대로 행, 열, 3x3사각형, 두번째 index에는 1~9값이 들어감으로 써 확인 void backtr..
[C++] 9663 : N-Queen https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net #include using namespace std; int N, cnt = 0; //(입력),(출력) int matrix[20] = {}; //row는 index, column은 값이라 생각하면 됨 bool promising(int row) { for (int i = 1; i N; //입력 backtrack(0); //백트래킹 cout
[C++] 15651 : N과 M (3) https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net #include using namespace std; int N, M; //입력할 변수 int arr[10]; //출력할 배열 void backtrack(int level) { if (level == M) { //깊이가 M이면 배열값들 출력 for (int i = 0; i M; //입력 backtrack(0); //백트래킹 return 0; } Backtracking을 알고리즘을 통해 문제를 해..
[C++] 15650 : N과 M (2) https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net #include using namespace std; int N, M; bool promising[10] = {}; void backtracking(int level, int index) { if (level == M) { //상태공간 트리에서 M까지 레벨에 도달하면 for (int i = 1; i M; //입력 backtracking(0,0); //백트래킹 return 0; } Backtrac..

728x90
반응형