마스크는 답답하다
article thumbnail
DFS / BFS
Programming/자료 구조 2023. 4. 25. 21:35

DFS (Depth-First Search) DFS란 깊이 우선 탐색으로 그래프를 탐색하는 방법의 하나이다. 위의 그림과 같이 최대한 깊이 내려간 뒤, 더 이상 내려갈 곳이 없을 경우 옆 노드로 이동하여 탐색하는 방법이다. DFS의 특징 Stack의 자료구조 재귀 함수를 이용하여 구현 그래프의 깊이가 깊을수록 빠름 BFS (Breadth-First Search) BFS란 넓이 우선 탐색으로 그래프를 탐색하는 방법의 하나이다. 위 그림과 같이 최대한 인접 노드를 탐색한 후 더 이상 갈 수 없을 때 하위 노드를 탐색하는 방법이다. BFS의 특징 Queue 자료 구조 Queue를 이용하여 구현 찾는 노드가 인접할 때 유리 노드가 많을수록 메모리 소비가 큼

article thumbnail
스택(Stack) / 큐(Queue)
Programming/자료 구조 2023. 4. 24. 05:53

스택 (Stack) 스택(Stack)은 쌓아 올린다는 의미이며, 스택 자료구조란 바닥부터 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. Stack의 특징 같은 구조와 같은 크기의 자료만 정해진 방향으로 쌓을 수 있음 Top으로 정한 곳을 통해선만 접근 가능 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO, Last-In-First-Out) 구조 Stack의 활용 예시 웹 브라우저의 뒤로가기 실행 취소 큐 (Queue) 큐(Queue)는 줄, 또는 줄을 서서 기다리는 것을 의미하며, 큐 자료구조란 들어온 순서대로 나가는 자료구조를 의미한다. Queue의 특징 삭제 연산만 수행되는 곳을 프론트(Front), 삽입 연산만 수행되는 곳을 리어(Rear)라고 함 삽입 연산은 인큐(enQueue)..

리스트(List) / 셋(Set) / 맵(Map)
Programming/자료 구조 2023. 4. 24. 04:27

Java Collection Framework Java Collection Framework는 다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이다. Collection의 주요 인터페이스 List Set Map List List의 특징 입력 순서를 유지 데이터의 중복 허용 인덱스를 통해 데이터에 접근이 가능 List의 주요 구현체 ArrayList - 단방향 포인터 구조로 데이터 순차적 접근이 빠름 LinkedList - 양방향 포인터 구조로 데이터 삽입, 삭제가 빠름 Set Set의 특징 입력 순서를 유지하지 않음 데이터의 중복을 허용하지 않음 Null 입력 가능 인덱스가 없고 Iterator를 사용하여 데이터 조회 Set의 주요 구현체 HashSet - 입력 순서를 보..

배열(Array) / 링크드 리스트(Linked List)
Programming/자료 구조 2023. 4. 24. 00:30

배열 (Array) 배열은 생성할 때 미리 크기를 정해놓는 정적 자료 구조이다. 또한 생성 시 배열의 크기 만큼의 연속된 메모리 주소를 할당받는다. 배열은 연속된 메모리 주소를 할당 받기 때문에 인덱스(index)를 갖는다. 이 index는 array[0] 에서 숫자 0을 의미한다. 배열의 장단점 장점 Index를 통한 임의 접근이 가능 (접근과 탐색이 용이) 단점 정적 자료구조로 인한 배열의 크기 수정 불가 링크드 리스트 (Linked List) 링크드 리스트는 크기를 정할 필요가 없는 동적 자료 구조이다. 또한 연속된 메모리를 할당 받지 않고 노드(Node)를 통해 데이터를 순차적으로 탐색한다. 링크드 리스트의 장단점 장점 크기의 제한이 없어 데이터의 추가, 삭제가 자유로움 단점 데이터에 임의 접근이..

검색 태그