일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바
- groupby
- 코테
- 티스토리챌린지
- 혼공챌린지
- Til
- MySQL
- 오블완
- 코틀린
- 혼공단
- join
- 정보처리기사
- 인프런
- 정처기
- 알고리즘
- Kotlin
- 안드로이드스튜디오
- select
- doitandroid
- 스터디
- SQL
- CS
- 혼공파
- java
- 자료구조
- Android
- 안드로이드
- 카카오코테
- 기술면접
- 프로그래머스
- Today
- Total
목록자료구조 (8)
Welcome! Everything is fine.
기술면접 스터디에서 받은 질문을 복습하기 위한 용도로 정리한 내용입니다. 스택으로 큐를 구현하고, 큐로 스택을 구현하는 방법은 무엇인가요?스택으로 큐를 구현하기 위해서는 2개의 스택이 필요합니다. 첫 번째 스택에 데이터를 넣고, 데이터를 뺄 때는 첫 번째 스택의 모든 데이터를 두 번째 스택으로 옮깁니다. 그렇게 하면 첫 번째 스택의 역순으로 두 번째 스택에 데이터가 저장될 것이고, 두 번째 스택에 있는 데이터를 하나씩 빼면 큐의 pop() 연산을 하는 것과 같은 결과가 나올 것입니다. 반대로 큐로 스택을 구현하기 위해서는 큐에 데이터를 넣고, 맨 위의 데이터가 나오기 전까지 데이터를 빼서 다시 큐에 넣습니다. 이 과정을 반복하면 스택을 구현할 수 있습니다.힙이란 무엇인가요?힙이란 완전 이진 트리의 한..
그래프란?비선형 자료구조 중 하나로, 데이터를 포함하는 정점(vertex)과 정점을 잇는 간선(edge)으로 구성된 자료구조그래프의 종류무방향 그래프 : 간선에 방향성이 없는 그래프, 정점의 개수가 n일 때 최대 간선의 개수는 n * (n - 1) / 2방향 그래프 : 간선에 방향성이 있는 그래프, 정점의 개수가 n일 때 최대 간선의 개수는 n * (n - 1)부분 그래프 : 기존 그래프에서 일부 정점 또는 간선을 제외한 그래프가중치 그래프 : 간선에 비용이나 가중치가 할당된 그래프완전 그래프(= 연결 그래프) : 간선을 최대로 가진 그래프유향 비순환 그래프 : 방향 그래프이면서 사이클이 없는 그래프그래프 구현 방법인접 행렬2차원 배열을 이용하여 그래프를 구현하는 방법, 간선의 수가 많은 밀집 그래프에서..
우선순위 큐의 동작원리에 대해 설명해주세요. 우선 순위 큐란?우선순위 큐 : 우선순위가 높은 데이터부터 꺼내는 자료구조배열, 연결 리스트, 힙으로 구현 가능하나 주로 가장 효율적인 힙을 가지고 구현한다.top이 최대면 최대힙, top이 최소면 최소힙으로 표현, 힙으로 구현된 이진 트리는 모든 정점이 자신의 자식 요소보다 우선순위가 높다는 성질을 가지고 있다. 시간 복잡도는 O(logN).힙이란? 완전 이진 트리의 한 종류. (최대 힙 & 최소 힙)최대 힙은 부모 노드가 자식 노드의 값보다 크고 최소 힙은 부모 노드가 자식 노드의 값보다 작다.최대 힙과 최소 힙을 이용해 최댓값과 최솟값을 빠르게 찾을 수 있어 우선순위 큐를 구현하거나 힙 정렬을 하는 데 주로 사용한다.힙의 삽입/삭제 연산삽입/삭제 예시 그..
완전 이진 트리, 포화 이진 트리, 이진 탐색 트리의 차이점은 무엇인가요? 발표 때 사용한 PDF로 질문에 대한 답변을 대신합니다:) 더보기기술 면접 대비 CS 전공 핵심요약집 | 이수진 - 교보문고 (kyobobook.co.kr)자료구조 이진트리(Binary Tree) 그림으로 쉽게 이해하기 (tistory.com)
힙(Heap)이란? 힙(Heap)은 완전 이진 트리로, 최댓값 또는 최솟값을 빠르게 찾을 수 있는 자료구조다. 우선순위 큐를 효율적으로 구현하는 데 자주 사용한다. 힙의 종류로는 최대 힙과 최소 힙이 있다. 최대 힙(max heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리. 최소 힙(min heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리. 힙의 삽입과 삭제 힙의 삽입과 삭제 연산은 책에 나와있는 내용을 다시 써보며 정리해보았다. 더보기 힙(Heap) | 👨🏻💻 Tech Interview (gyoogle.dev) 기술 면접 대비 CS 전공 핵심요약집 | 이수진 - 교보문고 (kyobobook.co.kr)
트리(Tree)란? 트리는 비선형 자료구조 중 하나로, 나무를 거꾸로 뒤집어 놓은 듯한 모양으로 인해 트리(Tree)라고 불린다. 마치 회사 조직도나 가계도처럼 생긴 트리는 계층적 구조를 잘 표현할 수 있다. 트리는 그래프의 일종으로 노드(Node)와 간선(Edge)으로 이루어져 있다. 트리에서 사용하는 용어는 다음과 같다. 루트 노드(root node) : 부모노드가 없는 노드 부모 노드(parent node) : 루트 노드 방향으로 연결된 노드 자식 노드(child node) : 루트 노드의 반대 방향으로 연결된 노드 단말 노드(leaf node) : 자식 노드가 없는 노드 형제 노드(sibling node) : 부모 노드가 같은 노드 레벨(level) : 루트노드로부터 노드의 상대적 위치를 의미 높..
이번 주는 기술 면접에서 많이 물어본다는 Array와 LinkedList의 특징과 차이점에 대해 정리해보았다. 같은 선형 자료구조이면서 정적 자료구조(Array)와 동적 자료구조(LinkedList)로 나뉘어서 자주 나오는 질문이 아닐까 싶다! Array 배열(Array)은 메모리 상에 원소를 연속하게 배치한 자료구조이다. 특징을 간단히 정리하자면 다음과 같다. 인덱스를 사용해 값에 바로 접근 가능하다. 배열의 크기는 한 번 선언하면 줄이거나 늘릴수 없다. (따라서 배열을 확장하기 위해서는 기존 배열의 내용을 새로운 배열에 복사하는 식으로 확장해야한다.) 새로운 값을 삽입하거나 삭제하기가 비효적이고 어렵다. (임의의 위치에 있는 원소를 추가/제거하는 시간 복잡도 O(N)) 데이터를 조회하는 연산이 많을 ..
스택(Stack)스택은 한쪽 끝에서만 데이터를 넣고 뺄 수 있는 자료구조이다. 다시 말해 후입선출(LIFO, Last-In-First-Out) 구조로, 왼쪽 그림과 같이 가장 마지막에 들어간 데이터가 가장 먼저 나오는 자료구조이다. 쌓아올려진 팬케이크를 생각하면 쉽다. 가장 위에 있는 팬케이크 먼저 없어질 것이다. 이 외에도 웹 페이지에서 뒤로가기 버튼을 눌렀을 때, 문서를 작성하다가 Ctrl+Z를 눌렀을 때 등 스택이 활용되는 상황이 많다. 스택에서 데이터가 추가/제거되는 곳을 top이라고 한다.스택 메서드 Object pop() : 맨 위에 저장된 객체를 꺼내서 반환한다. Object push(Object item) : 새로운 객체를 맨 위에 저장한다. Object peek() : 맨 위에 있는 데이..