본문 바로가기

C++106

[백준][bfs] 12851 숨바꼭질2 c++구현 목차https://www.acmicpc.net/problem/12851문제  코드 구현#include #include #include #include #include using namespace std;int visit[100001] = { 0 }; //시간 카운트int N, K;int cnt[100001] = { 0 }; //방법 수 카운트int methods = 0;int sec = 0;vector track;void bfs() { queue q; q.push(N); visit[N] = 1; cnt[N] = 1; while (!q.empty()) { int t = q.front(); q.pop(); if (t == K) { return; } for (int next : {t * 2,.. 2024. 6. 25.
완전탐색과 백트래킹 c++ 설명 완전 탐색완전 탐색은 말 그대로 모든 경우의 수를 탐색하는 방법으로 브루트 포스라고 불린다(brute-force)완전 탐색의 방법은 반복문과 재귀함수로 나뉜다. 반복문반복문으로 가능하다면 반복문으로 하는 것이 좋다. 재귀함수너무 복잡하거나 어떠한 행위는 반복하는데 매개변수만 수정해서 넘기면 될 것 같은 경우에 시행한다.   예시 문제100이하의 수 조합이 주어질 때 소수가 되는 경우의 수를 모두 구하여라 입력예시:1024 35 38 40 49 59 60 67 83 98 코드 구현#include #include #include #include #include using namespace std;vector v;vector s;bool isPrime(int n) { if (n == 0) return fal.. 2024. 6. 24.
[백준][재귀함수] 1780 종이의 개수 c++ 구현 목차https://www.acmicpc.net/problem/1780문제 재귀에 대한 이해가 부족한 것 같아 풀어보았다.범위만 나누어서 재귀적으로 탐색하면 쉽게 풀리는 문제였다.  코드 구현#include #include#include #include #include #include using namespace std;int arr[5000][5000];int a = 0;int b = 0;int c = 0;void Count(int row, int column, int n) { int cnt1 = 0; int cnt2 = 0; int cnt3 = 0; for (int i = row; i > N; for (int i = 0; i > arr[i][j]; } } Count(0,0, N); cout 2024. 6. 21.
[백준][bfs] 12869 뮤탈리스크 c++구현 목차https://www.acmicpc.net/problem/12869문제 문제 구현 시 주의점#include #include #include#includeusing namespace std;int start2[2][2] = { {9, 3 }, { 3, 9 } };int start3[6][3] = { {9, 3, 1 }, {9, 1, 3}, {3, 9, 1}, {3, 1, 9}, {1, 3, 9}, {1, 9, 3} };struct SCV { vector scv; int depth;};vector scv;vector ans;void print(vector t) { for (int i = 0; i q; q.push({ scv, 0 }); int cnt = 0; while (!q.empty()) { .. 2024. 6. 20.
728x90