Array 5

자료구조 _ Linked List란?

Linked List는 무엇인가요? Linked List는 노드라는 구조체 안에 데이터와 다음 노드의 address를 가지고 있는 자료구조를 말합니다. Linked List는 물리적인 메모리상에는 비연속적이나 다음 노드를 가리키는 address가 있기때문에 논리적인 연속성을 가지고 있다고 할 수 있습니다. 장점 - Array와 달리 데이터가 추가되는 시점에 메모리가 할당되기 때문에 메모리를 효율적으로 사용할 수 있습니다. - 시간복잡도는 데이터 삽입/삭제의 경우 다음 address만 수정하면 되기 때문에 O(1)입니다. 단점 - 다음 노드의 address를 가지고 있어야하기 때문에 데이터 하나당 차지하는 메모리가 커집니다. - 데이터 조회의 경우 Linked List는 순차적인 접근만 가능하기 때문에 O..

자료구조 _ Array와 Dynamic Array

Array는 무엇인가요? Array는 데이터를 메모리상에 연속적으로, 미리 할당된 크기만큼 저장하는 자료구조 입니다. Array의 특징 - 고정적 저장 공간이 필요합니다. - 메모리에 연속적으로 저장합니다. 시간복잡도 - 램덤액세스(즉시 접근 가능 - 순차(X)) 방식이기 때문에 조회는 O(1)입니다. - 마지막 삽입, 삭제도 O(1)입니다. - 다만 일반 삽입, 삭제는 O(n)입니다. 장단점 - Array의 장점은 조회가 빠르다는 것입니다. - Array의 단점은 고정된 저장 공간을 필요로 하기 때문에 Array의 크기를 미리 정해야 한다는 것입니다. - 때문에 메모리 낭비나 추가적인 오버헤드가 발생할 수 있습니다. *오버헤드 : Array 크기를 변경하면서 데이터 이동에 따라 발생하는 리소스 데이터가..

Array.diff

문제 설명 Your goal in this kata is to implement a difference function, which subtracts one list from another and returns the result. It should remove all values from list a, which are present in list b keeping their order. array_diff([1,2],[1]) == [2] If a value is present in b, all of its occurrences must be removed from the other: array_diff([1,2,2,2,3],[2]) == [1,3] 해결 방법 1. b리스트 안의 요소가 a리스트 안에 ..