목록알고리즘 (508)
어흥
문제 링크: www.hackerrank.com/challenges/find-the-merge-point-of-two-joined-linked-lists/problem?h_r=internal-search Find Merge Point of Two Lists | HackerRank Given two linked lists, find the node where they merge into one. www.hackerrank.com 1. 주의할 점 - 최악의 경우 N*M의 시간복잡도가 발생하지만, 통과한다 2. 구현 - While문 2개를 이용해서 브루트포스 느낌으로 구현할 수 있지만, Discussion에서 다른 사람의 풀이를 통해 살짝(?) 다른 접근을 해보자 - head1와 같은 주소를 가리키는 a를, h..
문제 링크: www.hackerrank.com/challenges/delete-duplicate-value-nodes-from-a-sorted-linked-list/problem?h_r=internal-search Delete duplicate-value nodes from a sorted linked list | HackerRank Given a linked list whose nodes have data in ascending order, delete some nodes so that no value occurs more than once. www.hackerrank.com 1. 주의할 점 - 입력받는 List는 오름차순으로 정렬되어 있다 - 중복될 경우, 새로운 포인터를 이용한다 2. 구현 - He..
문제 링크: www.hackerrank.com/challenges/merge-two-sorted-linked-lists/problem?h_r=internal-search 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 1. 주의할 점 - 한쪽의 List가 먼저 끝나는 경우, 이에 대한 처리를 명확히 한다 2. 구현 - 2개의 List를 합할 SinglyLinkedList li를 생성한다 - 2개의 List가 모두 NULL을 가리키지 않는다면, 다음과 같은 작업을 반복..
문제 링크: www.hackerrank.com/challenges/get-the-value-of-the-node-at-a-specific-position-from-the-tail/problem?h_r=internal-search Get Node Value | HackerRank Given the head of a linked list, get the value of the node at a given position when counting backwards from the tail. www.hackerrank.com 1. 주의할 점 - List의 수를 알고 있어야 한다 - Head의 포인터를 새로운 포인터가 저장하고 있어야 한다 2. 구현 - 2가지의 방법으로 풀었다 [List크기 구하기 + 앞에서부터..
문제 링크: www.hackerrank.com/challenges/compare-two-linked-lists/problem?h_r=internal-search Compare two linked lists | HackerRank Compare the data in two linked lists node by node to see if the lists contain identical data. www.hackerrank.com 1. 주의할 점 - 길이가 다를 경우에 대한 예외 처리를 한다 - 값이 다를 경우에 대한 예외 처리를 한다 2. 구현 - head1과 head2가 가리키는게 NULL이라면 true를 반환한다 - 둘중 하나만 NULL을 가리킨다면 false를 반환한다 - 둘다 NULL이 아닐 경우,..
문제 링크: www.hackerrank.com/challenges/reverse-a-linked-list/problem?h_r=internal-search Reverse a linked list | HackerRank Change the links between the nodes of a linked list to reverse it www.hackerrank.com 1. 주의할 점 - Node의 List를 활용할 수 있어야 한다 2. 구현 - SinglyLinkedList li를 통해 SinglyLinkedListNode를 담는 리스트를 생성한다 - Stack을 통해 Head에 저장된 모든 data들을 저장하고 Stack에서 1개씩 빼면서 li에 넣는 작업을 반복한다 - Node형태로 Return해야하..
문제 링크: www.hackerrank.com/challenges/print-the-elements-of-a-linked-list-in-reverse/problem?h_r=internal-search Print in Reverse | HackerRank Print the elements of a linked list in reverse order, from tail to head www.hackerrank.com 1. 주의할 점 - Stack에 대해서 알고있으면 된다 2. 구현 - 입력받은 SinglyLinkedListNode의 값을 Stack에 저장한다 - 모든 Node를 거쳤다면, Stack에서 1개씩 빼면서 출력한다 void reversePrint(SinglyLinkedListNode* head) ..
문제 링크: www.hackerrank.com/challenges/delete-a-node-from-a-linked-list/problem?h_r=internal-search Delete a Node | HackerRank Delete a node from the linked list and return the head. www.hackerrank.com 1. 주의할 점 - position이 0일 때의 반환값을 잘 처리한다 2. 구현 - 파라미터로 받은 SinglyLinkedListNode의 Head의 위치를 저장하는 Node를 생성한다 - 만약 position이 0이라면 Head의 다음 Node를 가리키는 포인터를 넘기면 된다 - While문을 통해 현재 Node의 다음 Node가 삭제 예정이라면, 현..