동적배열이란? 대표적인 동적배열은 C++의 Vector와 같은 형태가 있다. 일반적인 배열(Array)은 기본적으로 Fixed-size이기 때문에 선언시 설정한 size보다 많은 갯수의 data가 추가되면 저장할 수 있는 공간이 없는 문제가 발생한다! 하지만 Dynamic Array같은 경우 저장공간이 가득 찰경우 저장공간을 resize하여 유동적으로 조절하여 데이터를 저장하는 자료구조이다. resize의 과정? resizing의 대표적 방법은 기본 Array size의 2배를 할당하는 Doubling방식이 있다. Dynamic Array같은 경우 data를 추가하다 기존 할당된 Memory를 초과하게 되면 size를 늘린 새로운 배열을 선언하고 그곳으로 모든 데이터를 옮김으로써 늘어난 크기의 size를..
배열(Array)이란? 배열은 연관된 data를 메모리상에 연속적이며, 순차적으로 미리 할당된 크기만큼 저장하는 자료구조이다. 특징 고정된 저장공간(Fixed-size) 순차적인 데이터 저장(Order) 장점 index를 통해 O(1)의 속도로 데이터에 접근하기 때문에 lookup과 append가 빠르다는것이 장점이다. 위와같은 이유로 자주 조회를 사용하는 작업에서 매우 유리한 구조이다. 단점 Fixed-Size 특성상 배열을 선언할때 배열의 크기를 미리 정해야하는것으로 이는 메모리 낭비나 Overhead의 발생우려가 있다. Overhead발생시 대처 동적 배열(Dunamic Array) Linked List 활용.
백준 알고리즘을 풀며 공부를 하다 짝을 이루는 배열도 있다는것을 알았다. int와 int 뿐 아니라 int와 char등 2개의 자료형을 묶어서 배열에 저장 할 수도 있다는 것이다. 파이썬의 딕셔너리가 key : value 쌍을 이루는 것처럼 비슷한 방식으로 C++ 배열도 쌍을 이룰 수 있게 사용할 수 있는 방법이 어떤게 있을까 생각하며 찾다 pair array를 발견했다. pair 예시로 작성을 해보았는데 동작이 잘 되는것을 확인 할 수 있었다. #include using namespace std; int main(){ int a,b; int n = 3; pair parry[10]; // pair array for(int i=0; i > a >> b; parry[i].first = a; parry[i]...