전체 글(110)
-
[백준/C++]#2667 - 단지번호붙이기
풀이 #include #include using namespace std; int a[26][26]; int check[26][26]; int dx[] = {0, 0, 1, -1};// 상하좌우 + 1 int dy[] = {1, -1, 0, 0}; int ans[25*25]; int n; void dfs(int x, int y, int CNT) { check[x][y] = CNT; for (int k=0; k
2021.02.09 -
[백준/C++]#9466 - 텀 프로젝트
풀이 #include using namespace std; int a[100001]; int check[100001]; int numb[100001]; int dfs(int node, int len, int num) { if (check[node] != 0) {// 사이클의 시작부분일 때 if (num != numb[node]) {// 지금 고유번호와, 사이클 고유번호가 다르면 return 0; } else return len-check[node];// 사이클 길이 출력 } check[node] = len;// 길이 대입 numb[node] = num;// 고유번호 대입 return dfs(a[node], len+1, num);// 탐색 순환 } int main() { int t; cin >> t; wh..
2021.02.09 -
[백준/C++]#2331 - 반복수열
풀이 #include #include #include #include using namespace std; pair a[300000]; bool check[300000]; int cnt = 0; void dfs(string N, int P) { int node = std::stoi(N);// 문자열 -> 정수 check[node] = true; int findNext = 0;// 다음에 연결되는 노드 계산 for (int i=0; i 문자열 dfs(nextS, P); } else { cout > n >> p; dfs(n, p); return 0; } 개념 문자열을 숫자로 바꾸고, 숫자를 문자로 바꾸는데 string 라이브러리가 사용된다. std::stoi (문자열 -> 숫자), std::to_string..
2021.02.07 -
[백준/C++]#10451 - 순열 사이클
풀이 #include #include #include using namespace std; vector a[1001]; bool check[1001]; void dfs(int node) { check[node]=true; for (int i=0; i> t; while (t--) { int n; cin >> n; for (int i=1; i v; a[i].push_back(v); } int cnt=0; for (int i=1; i> t; while (t--) { int n; cin >> n; for (int i=1; i> a[i]; c[i] = false; } int ans = 0; for (int i=1; i2 인 경우에도 탐색이 끝나서 cnt가 +1 되기 때문이다. 이 부분은 좀 더 고민해 봐야겠다...
2021.02.05 -
[백준/C++]#1707 - 이분 그래프
풀이 #include #include #include using namespace std; vector a[20001]; int apart[20001]; void dfs(int node, int c) { apart[node] = c; for (int i=0; i> t; while (t--) { int n, m; cin >> n >> m; for (int i=1; i u >> v; a[u].push_back(v); a[v].push_back(u); } for (int i=1; i
2021.02.04 -
[백준/C++]#11724 - 연결 요소의 개수
풀이 #include #include #include #include using namespace std; vector a[1001];// 저장공간 정의 bool check[1001]; void dfs(int node) { check[node] = true;// 왔다감 체크 for (int i=0; i> n >> m; for (int i=0; i> u >> v; a[u].push_back(v); a[v].push_back(u); } for (int i=1; i u >> v; a[u].push_back(v); a[v].push_back(u); } for (int i=1; i
2021.02.04 -
[백준/C++]#1260 - DFS와 BFS
풀이 #include #include #include #include #include using namespace std; vector a[1001];// 저장공간 정의 bool check[1001]; void dfs(int node) { check[node] = true;// 왔다감 체크 cout start; for (int i=0; i> u >> v; a[u].push_back(v); a[v].push_back(u); } for (int i=1; i
2021.02.02 -
[백준/C++]#1377 - 버블 소트
풀이 #include #include #include using namespace std; int main() { int n; cin >> n; vector a(n); for(int i=0; i> a[i].first; a[i].second = i; } sort(a.begin(),a.end()); int ans =0; for(int i=0; i
2021.02.01 -
[백준/C++]#11004 - K번째 수
풀이 #include #include using namespace std; int main() { ios::sync_with_stdio(false);// cin, cout의 속도 증가 int n,k; cin >> n >> k; int a[50000000]; for (int i=0; i> a[i]; } k--; nth_element(a, a+k, a+n);//정렬 cout
2021.02.01