HackerRank 49

[HackerRank] Implementation > Designer PDF Viewer

https://www.hackerrank.com/challenges/designer-pdf-viewer/problem 배열 h에 글자의 크기가 들어온다. word에서 가장 큰 글자의 크기로 하이라이트를 하는데 필요한 공간을 계산하는 문제다. zaba면 가장 큰 글자인 z의 크기가 7mm이므로 7x4(글자수) = 28을 출력하면 된다. [Java] public static int designerPdfViewer(List h, String word) { // Write your code here int max = 0, index; for(int i=0; i max) max = h.get(index); } return max*word.length(); } max는 가장 큰 글자의 높이다. index에 문자를 ..

[HackerRank] Sorting > Closest Numbers

https://www.hackerrank.com/challenges/closest-numbers/problem 배열 값에서 차가 가장 작은 수를 출력하면 된다. (중복 허용) 배열을 오름차순으로 정렬한 뒤 다음 원소와의 차를 구해 가장 작은 값을 배열에 넣어줬다. int compare(const void *a, const void *b) { return *(int *)a - *(int *)b; } int* closestNumbers(int arr_count, int* arr, int* result_count) { qsort(arr, arr_count, sizeof(int), compare); int *diff = (int*)malloc(sizeof(int)*(arr_count-1)*2); int dif ..

[HackerRank] Trees > Tree : Height of a Binary Tree

https://www.hackerrank.com/challenges/tree-height-of-a-binary-tree/problem 바이너리 트리의 높이를 구하는 문제다. int height(Node* root) { // Write your code here. int r = 0, l = 0; if(root->right!=nullptr){ r = height(root->right); r++; } if(root->left!=nullptr){ l = height(root->left); l++; } if(r>l) return r; else return l; } 왼쪽의 높이와 오른쪽의 높이를 구할 변수 l과 r을 설정해 주었다. if문으로 다음 노드가 nullptr이 아니라면 길이를 구해준다. r과 l중 긴 쪽..

[HackerRank] Implementation > Cats and a Mouse

https://www.hackerrank.com/challenges/cats-and-a-mouse/problem 두 마리의 고양이와 한 마리의 쥐가 있다. 위치를 계산해 쥐를 더 빨리 잡을 수 있는 고양이를 출력한다. 거리가 같으면 고양이들이 싸우느라 쥐가 도망가므로 Mouse C를 출력한다. x = Cat A, y = Cat B, z = Mouse C char* catAndMouse(int x, int y, int z) { char *str = (char*)malloc(10); int a = x-z, b = y-z; if(ab이면 Cat B, a

[HackerRank] Implementation > Bill Division

https://www.hackerrank.com/challenges/bon-appetit/problem Anna와 Brian이 밥을 먹었다. 계산할 때 Anna가 먹지 않은 음식의 값을 뺀 나머지를 Brian과 나누는데, 돈이 잘 계산됐는지 확인하면 된다. 배열 bill에 음식의 값들이 저장되고, Anna가 먹지 않은 음식의 인덱스는 k에 저장된다. b는 Brian이 Anna에게 청구한 금액인데, 맞으면 Bon Appetit를, 틀리면 Brian이 청구한 금액 - Anna가 낼 금액을 계산해서 출력한다. void bonAppetit(int bill_count, int* bill, int k, int b) { int anna = 0; for(int i=0; i