[BOJ/백준] 10451번 - 순열 사이클
문제 https://www.acmicpc.net/problem/10451 10451번: 순열 사이클 1부터 N까지 정수 N개로 이루어진 순열을 나타내는 방법은 여러 가지가 있다. 예를 들어, 8개의 수로 이루어진 순열 (3, 2, 7, 8, 1, 4, 5, 6)을 배열을 이용해 표현하면 \(\begin{pmatrix} 1 & 2 &3&4&5&6&7&8 \\ 3 www.acmicpc.net 문제 요약 위 그림과 같이, 시작점에서 출발하여 다시 시작점으로 돌아오는 사이클의 개수를 구하는 문제이다. CODE #include using namespace std; const int mxN=1e5; int n, to, adj[mxN]; bool vis[mxN]; void dfs(int u) { vis[u] = tr..
2021. 8. 23.
[BOJ/백준] 11053번 - 섬의 개수
문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 문제 요약 0과 1로 주어진 지도에서 섬의 개수(숫자 : 1)를 센다. 이때, 방향은 8방향 모두 가능하다. CODE #include using namespace std; const int mxN=50; int n, m, a[mxN+1][mxN+1]; bool vis[mxN+1][mxN+1]; int dx[8] = {1, -1, 0, 0, 1, 1, -1, -1}; int dy[8] =..
2021. 8. 23.
[BOJ/백준] 11053번 - 가장 긴 증가하는 부분 수열
가장 긴 증가하는 부분 수열 문제 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net CODE #include using namespace std; const int mxN=1e3, mxA=1e3; int n, a[mxN+1]; int dp[mxA+1]; int main() { cin >> n; for(int i=0; i>a[i]; } int ans=0; for(int ..
2021. 7. 21.