반응형

https://www.hackerrank.com/challenges/30-linked-list-deletion/problem

 

Day 24: More Linked Lists | HackerRank

Welcome to Day 24! Review everything we've learned so far and learn more about Linked Lists in this challenge.

www.hackerrank.com

이번에 풀어볼 문제는 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

+ Recent posts