알고리즘

BOJ 백준/Class 4

백준 1991번, 트리 순회(C, C++)

https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net #include #include #include using namespace std; int N; char X; char Y; char Z; int parent[27][2]; void preorder(char root){ if(root =='.'){ return; }else{ cout> Y >> Z; parent[X - 'A'][0] = Y; parent[X - 'A'][1] = Z; ..

BOJ 백준/Class 4

백준 9465번, 스티커(C, C++)

https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net int main(){ int dp[2][20001]; int s[2][200001]; int T; int n; cin>>T; while(T--){ cin>>n; for(int i = 0; i > s[i][j]; } } dp[0][0] = s[0][0]; dp[1][0] = s[1][0]; dp[0][1] = ..

BOJ 백준/Class 4

백준 1916번, 최소비용 구하기(C, C++)

#include #include #include #define INF 100000000; using namespace std; vector a[1001]; priority_queuepq; int d[1001]; int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int N; int M; int start; int end; cin>>N>>M; for(int i = 1; i x>>y>>z; a[x].push_back({y, z}); } cin>>start>>end; pq.push(make_pair(0, start)); d[start] = 0; while(!pq.empty()){ int cost = pq.top().first; int cur =..

BOJ 백준/Class 4

백준 11659번, 구간 합 구하기 5(C, C++)

https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net #include using namespace std; int prefixsum[1025][1025] ={0}; int dp[1025][1025]; int main(){ int x1; int x2; int y1; int y2; int N; int M; cin >> N >> M; for(int i = 1; i prefixsum[i][j]; dp[i][j] =..

BOJ 백준/Class 4

백준 11053번, 가장 긴 증가하는 부분 수열( C, C++)

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 #include #include using namespace std; int main(){ int dp[1001] = {}; int s[1001] = {}; int N; int cnt; cin>>N; for(int i = 0; i >s[i]; } for(int i = 0; i < N; i++)..

BOJ 백준/Class 4

백준 1967번, 트리의 지름(C, C++)

https://www.acmicpc.net/problem/1967 #include #include #include #define MAX 10001 using namespace std; vectorv[MAX]; bool visited[10001] = {false}; int ans = 0; int endpoint = 0; void dfs(int num, int length){ if(visited[num]){ return; } visited[num] = true; if(ans < length){ ans = length; endpoint = num; } for(int i = 0; i < v[num].size(); i++){ int next = v[num][i].first; int cost = v[num][i]...

simun
'알고리즘' 태그의 글 목록 (4 Page)