반응형
https://www.hackerrank.com/challenges/30-linked-list-deletion/problem
이번에 풀어볼 문제는 Linked List 에서 중복된 Data를 가진 Node를 삭제하는 문제입니다.
이 때 Node들의 Data는 랜덤하게 배정된 것이 아니라(이렇게 되면 중복된 노드 중 어떤 노드를 삭제해야 할지 지정을 해주어야겠죠), Non-decreasing order로 연결되어 있습니다.
즉, 특정 노드의 Data ≤ 다음 노드의 Data 의 관계를 만족한다는 것입니다.
1. 변수
1) target : 특정 노드를 지정해줍니다.
2. 방법
1) target의 next node가 존재할 경우, 아래 작업을 반복합니다.
2) target의 data와 target 다음 노드의 data 값을 비교하고, 같을 경우에는 target 노드에 다다음 노드를 연결해줍니다.
(target.data 와 target.next.data를 비교, 같으면 target.next = target.next.next)
3) 다를 경우에는 target = target.next를 진행합니다.(다음 노드에 대하여 위의 작업 반복)
이번 문제는 간단하게 끝났습니다. 이상 끝-! (보통 포인터에서는 할당된 메모리를 free해주었어야 하는데..이문제도 동일하게 해줘야하는지 또 찜찜한 기분이 들긴 합니다..)
반응형
'Computer Science > 알고리즘' 카테고리의 다른 글
Hackerrank - Nested Logic (0) | 2020.02.24 |
---|---|
Hackerrank - Running Time and Complexity (0) | 2020.02.23 |
Hackerrank - BST Level-Order Traversal (0) | 2020.02.19 |
Hackerrank - Binary Search Trees (0) | 2020.02.17 |
Hackerrank - Repeated String (0) | 2019.12.28 |