자료구조 3

[자료구조] 큐 Queue, 덱 Deque

저번에 자료구조 중 스택에 대해 공부를 했었다. 이번에는 자료구조 삼인방 스택, 큐, 덱 삼인방 중 큐 (Queue), 덱 (Deque)에 대해서 공부를 하였다! 큐(Queue) 한쪽에서만 데이터의 삽입 삭제가 이루어졌던 스택과 달리 큐는 양쪽 끝에서 데이터의 삽입과 삭제가 각각 이루어진다. FIFO (First In First Out) 으로 동작하며 데이터가 삽입되는 곳을 rear, 데이터가 제거되는 곳을 front 라 한다. 데이터를 삭제하기 전에는 큐가 empty 한지, 큐에 데이터를 추가하려 할 때는 큐가 full 인지 확인 후 진행해야 한다. 큐의 핵심 연산 1. enqueue(x) : 큐에 데이터를 넣는 연산. 주어진 요소 x를 큐의 맨 뒤에 추가한다. 2. dequeue() : 큐가 비어있지..

자료구조 2023.01.16

[자료구조] int 와 Integer 의 차이점?

백준에서 문제를 풀다가 궁금증이 생겼다. 정수형 배열을 선언할 때, 보통 아래 방식으로 선언했다. int arr[] = new int[10]; 하지만 문제를 제출하니 런타임에러가 떴고 찾아보니 Integer arr[] = new Integer[10]; 위와 같이 선언을 해야한다는 것이었다... 약 4년 동안 int와 Integer를 항상 사용했지만 이 2개의 차이점을 알지 못하고 있었다는 것이 충격이었다. 그래서 이 포스팅을 적게 되었다.... 1. int 란? (Primitive Type) int는 변수의 타입 (data type)이다. 변수(variable)는 '값을 저장할 수 있는 메모리 상의 공간'을 의미한다. int a = 3; char firstName = 'H'; 위에서 a 와 firstNa..

자료구조 2023.01.09

[자료구조] 스택 (Stack)

🚩스택 (Stack)의 개념 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO (Last In First Out) 형식의 자료 구조 ❓스택 (Stack)의 특징 1. 먼저 들어간 자료가 나중에 나옴. LIFO구조 2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함 3. 인터럽트 처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰임 4. 그래프의 깊이 우선 탐색 (DFS)에서 사용 5. 재귀적(Recursion) 함수를 호출할 때 사용 💻스택 (Stack)의 연산 스택(Stack)은 LIFO(Last In First Out) 를 따른다. 즉, 가장 최근에 스택에 추가한 항목이 가장 먼저 제거될 항목이다. - pop() : 스택에서 가장 위에 있는 항목을 제거한..

자료구조 2023.01.06