HackerRank 8

[HackerRank C] Implementation : Grading Students

점수를 매기는 방법 40점 미만은 낙제다. 38점이상부터 반올림을 한다. 점수보다 높은 5의 배수와 3점 미만의 차이가 나면 반올림을 한다. 반올림 예) 38 -> 40, 58 -> 60 반올림 안하는 경우 : 55, 56, 77 코드 int* gradingStudents(int grades_count, int* grades, int* result_count) { int *a = malloc(grades_count*sizeof(int)); *result_count = grades_count; int i; for(i=0; i=38){ if((a[i]/5+1)*5-a[i]= 이어야되는데 착각했었다;; int* gradingStudents(int grades_count, int* grades, int* res..

[HackerRank C] Tree : Inorder Traversal

중위순회(Inorder) left -> root -> right 왼쪽자식노드 -> 부모노드 -> 오른쪽 자식노드순으로 방문한다. void inOrder( struct node *root) { if(root->left) inOrder(root->left); if(root) printf("%d ", root->data); if(root->right) inOrder(root->right); } 노드가 null이 아닌 것에 주의한다. left 노드를 먼저 방문하고 root 일 때 data를 출력한다. 마지막으로 right 노드를 방문한다. 재귀적으로 함수를 사용해 해결해주었다.

[HackerRank] Sorting : Find the Median

배열을 오름차순으로 정렬한 후, 가운데 값을 출력하는 문제이다. void insertion_sort(int list[], int n){ int i, j, key; for(i = 1; i = 0 && list[j] > key; j--){ list[j+1] = list[j]; } list[j+1] = key; } } int findMedian(int arr_count, int* arr) { insertion_sort(arr, arr_count); return arr[(arr_count-1)/2]; } 삽입정렬을 이용해 배열을 정렬하고 가운데 값을 반환해준다. 삽입정렬은 정렬된 앞부분과 자신을 비교해 자신의 위치를 찾아 삽입하는 알고리..

[HackerRank(C)] Sorting : Insertion Sort - Part 1

문제 링크 Insertion Sort - Part 1 | HackerRank Insert an element into a sorted array. www.hackerrank.com Algorithm > sorting > Insertion Sort n이 5이면 배열은 5만큼 입력받는다. arr[1,2,4,5,3]이 입력으로 들어왔을 때, 가장 오른쪽에 있는 arr[4] = 3을 왼쪽값과 비교하면서 오름차순으로 정렬되도록 위치시키면 된다. arr[3] > arr[4] = 3 이므로 arr[4]는 arr[3] arr[2] > 3 이므로 arr[3] = arr[2] arr[1] < 3 이므로 arr[2] = 3 코드 // Complete the insertionSort1 function below. void i..