본문 바로가기

알고리즘

THE100YEARSWAR 백년전쟁 풀이 문제: https://algospot.com/judge/problem/read/THE100YEARSWAR 문제 해석 1,2번 왕을 제외한 모든 귀족은 종신 관계를 가지고 있으며 입력에서 종신관계의 순서는 임의의 순서로 들어오나 결국에는 1,2번을 루트로 한 두개의 트리가 완성된다. 들어오는 순서가 임의이기 때문에 입력을 받으면서 전처리는 불가능하다. 모든 입력을 다 받고 난 뒤에 전처리를 행해야 한다. 한 귀족이 배신을 하면 그 귀족 아래의 모든 귀족이 배신을 한다. 즉 그 배신하는 귀족을 루트로하는 부분트리내 모든 노드가 배신을 한다. 입력 받기 예를 들면 귀족이 총 19명이고 1~19번 귀족=노드의 입력이 이런 형태로 들어왔다고 합시다. 이러한 트리 구조를 받을 수 있는 자료형을 먼저 만들어야 합니다.. 더보기
트리 최적 노드 삽입 순서 #include void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp;}void bubble_sort(int *array, int size) { for (int i = size - 1; i >= 0; i--) for (int j = 0; j array[j + 1]) swap(&array[j], &array[j + 1]);}void best_way(int* array, int from, int size) { if (from == size) return; int center=(from + size) / 2; printf("%d ", array[center]); best_way(array, from, center); best_way(array, cent.. 더보기
버블 정렬 알고리즘 오름차순 #include void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp;}void bubble_sort(int *array, int size) { for (int i = size - 1; i >= 0; i--) for (int j = 0; j array[j + 1]) swap(&array[j], &array[j + 1]);}int main() { int sample[10] = { 2, 6, 7, 7, 9, 3, 5, 9, 1, 3 }; for (int i = 0; i 더보기