Programming

    Sock Merchant

    [Algorithms > Implementation] https://www.hackerrank.com/challenges/sock-merchant/problem 배열의 크기(n)을 입력하고, 배열의 원소들을 입력한다. 배열들 중 같은 숫자들의 쌍의 개수 (2개씩)를 출력하는 문제 #include #include #include #include #include #include #include #include #include char* readline(); char** split_string(char*); // Complete the sockMerchant function below. int sockMerchant(int n, int ar_count, int* ar) { int pair=0; int a[n]..

    Maximum Element

    https://www.hackerrank.com/challenges/maximum-element/problem stack에서 1, 2, 3번 메뉴를 선택했을 때 각 메뉴에 맞는 명령을 실행하도록 하면 된다. 1번 - push 2번 - pop 3번 - stack의 components 중에서 가장 큰 값을 출력한다 #include #include #include #include int main() { long long i,j,n,x,index,arr[100001],maxs[100001],top; int menu; max = 0; top = -1; scanf("%lld",&n); for(i=0;i max){ max = x; } maxs[top] = max; } else if(menu == 2){ if(top!..

    Bon Appetit

    https://www.hackerrank.com/challenges/bon-appetit/problem Bon Appétit | HackerRank Determine whether or not Brian overcharged Anna for their split bill. www.hackerrank.com #include #include #include #include #include #include #include #include #include #include char* readline(); char* ltrim(char*); char* rtrim(char*); char** split_string(char*); // Complete the bonAppetit function below. void bo..

    Queue using Two Stacks

    [Data Strucutre/Queues/Medium] https://www.hackerrank.com/challenges/queue-using-two-stacks/problem Queue using Two Stacks | HackerRank Create a queue data structure using two stacks. www.hackerrank.com #include #include #include #include int main() { int count; scanf("%d", &count); int *n_queue = malloc(sizeof(int)*count); int *p_queue = malloc(sizeof(int)*count); int top=0, rear=-1, index=0; i..

    Mini-Max Sum

    [Algorithms/WarmUp/Easy] https://www.hackerrank.com/challenges/mini-max-sum/problem Mini-Max Sum | HackerRank Find the maximum and minimum values obtained by summing four of five integers. www.hackerrank.com #include #include #include #include #include #include #include #include #include char* readline(); char** split_string(char*); // Complete the miniMaxSum function below. void miniMaxSum(int ..

    Merge two sorted linked lists

    [Data Structures/Linked List/Easy] https://www.hackerrank.com/challenges/merge-two-sorted-linked-lists/problem Merge two sorted linked lists | HackerRank Given the heads of two sorted linked lists, change their links to get a single, sorted linked list. www.hackerrank.com 두 개의 정렬된 연결리스트를 입력받는다. 처음에는 두 연결리스트가 정렬된 연결리스트인지 모르고 두 연결리스트를 먼저 병합하고 정렬하려고 했는데 뭔가 계속 wrong answer가 나와서 다른 방법으로 접근했다. 두 정렬된 리..

    Balanced Brackets

    [Data Structures/Stack/Medium] https://www.hackerrank.com/challenges/balanced-brackets/problem Balanced Brackets | HackerRank Given a string containing three types of brackets, determine if it is balanced. www.hackerrank.com 괄호들을 입력하고 (), {}, [] 짝을 이루고 있는지 확인하는 문제이다. C++ 수업에서 이 문제를 stack으로 구현해서 출력하는 과제를 한 적이 있다. 다만 이번에는 주어진 함수로만 풀기위해 stack을 따로 구조체를 선언하지 않고 풀어서 사용했다. 그리고 push(), pop()함수도 현재 주어지지 ..

    PreOrder/InOrder/PostOrder

    https://www.hackerrank.com/challenges/tree-preorder-traversal/problem Tree: Preorder Traversal | HackerRank Print the preorder traversal of a binary tree. www.hackerrank.com PreOrder VLR 순서로 트리를 순회하는 방식; prefix void preOrder( struct node *root) { if(root){ printf("%d ", root->data); preOrder(root->left); preOrder(root->right); } } cf. InOrder LVR 순서로 트리를 순회하는 방식; infix void inOrder( struct node ..

    Cycle Detection

    https://www.hackerrank.com/challenges/detect-whether-a-linked-list-contains-a-cycle/problem Cycle Detection | HackerRank Given a pointer to the head of a linked list, determine whether the linked list loops back onto itself www.hackerrank.com [DataStructure/Medium] 연결리스트 내에 cycle이 있는지 boolean값으로 리턴하는 함수 has_cycle()을 작성하는 문제 head 노드를 인자로 받고 그 노드를 기준으로 연결리스트를 탐색하며 cycle이 있는지 확인해야한다. 함수 내부에 주석처리를 한..