일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 코딩테스트
- hash table
- geometry
- array
- Number Theory
- 구현
- greedy
- Binary Tree
- 자바
- Class
- Data Structure
- Matrix
- 코테
- database
- sorting
- Method
- dynamic programming
- java
- implement
- bit manipulation
- 파이썬
- two pointers
- Counting
- Binary Search
- Stack
- SQL
- string
- simulation
- Math
- Tree
- Today
- Total
목록Data Structure (16)
코린이의 소소한 공부노트
1. 입력 - 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. - 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다. - 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. - 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다 2. 출력: 첫째 줄에 입력으로 주어진 M개의 수에 대해서, 각 수가 적힌 숫자 카드를 상근이가 가지고 있으면 1..

1. 개념정리 1) 뒤쪽에서는 삽입이, 앞쪽에서는 삭제가 일어나는 구조 2) FIFO(First In First Out, 첫 삽입 데이터가 먼저 삭제됨) 3) java.util 패키지에 Queue 인터페이스가 있고, 이를 구현한 클래스 중 대표적인 것이 LinkedList가 있다. 2. 구현 코드 class ArrayQueue{ // int[]로 구현하는 큐 protected final int defCap = 100;// 큐의 용량 protected int[] queue;// 큐로 사용할 배열 protected int numElements = 0;// 큐에 들어간 요소의 개수 protected int front = 0;// 큐의 맨 앞 인덱스 protected int rear;// 큐의 맨 뒤 인덱스 p..

1. 개념정리 1) 한쪽에서만 데이터 삽입과 삭제가 가능한 구조 2) LIFO(Last In First Out, 마지막 삽입 데이터가 먼저 삭제됨) 3) java.util 패키지에 Stack 클래스가 있다. 2. 구현 코드 class ArrayStack{ // int[]로 구현하는 스택 protected final int defCap = 10; // 스택의 용량 protected int[] stack; // 스택의 요소를 담을 배열 protected int topIndex = -1; // 스택의 가장 마지막 인덱스 public ArrayStack() { // 기본 생성자 stack = new int[defCap]; } public ArrayStack(int maxSize) { // 스택의 크기를 지정한 ..

1. 개념정리 1) 같은 타입인 여러 개의 변수를 하나로 묶어놓은 것 - 타입은 기본형, 참조형 가리지 않는다. - 물리적으로(하드디스크) 연속되지 않은 공간에 있어도 상관없다.. - java.util 패키지에 LinkedList 클래스가 있다. 2) 리스트의 요소를 노드(node)라고 부르며, 각 노드에는 값(value)과 다음 노드의 주소가 저장된 링크(next)가 있다. - 특히, 맨 앞 노드를 head, 맨 뒤 노드를 tail이라고 부른다. - 마지막 노드라면 next == null - 데이터가 추가되면 연결만 해주면 되기 때문에, 연결 리스트의 최대 크기는 정해져 있지 않다. 3) 이중 연결 리스트는 단순 연결 리스트에서 이전 노드의 주소가 저장된 링크(previous)가 추가된 것이다. - 맨..

1. 개념정리 1) 같은 타입인 여러 개의 변수를 하나로 묶어놓은 것 - 타입은 기본형, 참조형 가리지 않는다. - 물리적으로(하드디스크) 연속된 공간에 저장되어있다. - 자바는 참조변수에 배열의 시작주소를 저장해서 이용하고 있다. 2) 배열의 크기는 배열을 이루고 있는 요소의 개수와 같다. - 한번 선언된 배열의 크기는 바꿀 수 없다. - 크기를 늘리고싶다면 새 배열을 만들어 반복문이나 System.arraycopy() 등을 이용해 요소를 복사해야 한다. - java.util 패키지에 있는 ArrayList 클래스를 이용해서 유연한 배열을 사용할 수 있다. 3) 배열이 다른 배열의 요소가 될 수 있다. - 1차원 배열의 요소가 1차원 배열이라면 그 배열은 2차원 배열이 된다. 4) 인덱스(위치)는 0번..

1. 단순구조(기본구조): 언어에서 기본으로 제공하는 타입 2. 선형구조: 데이터가 연속적으로 붙어있거나 순서가 정해져 있는 구조 1) 리스트(배열, array): 데이터가 연속적으로 붙어 있는 구조 2) 연결 리스트(linked list): 불연속적인 데이터가 링크를 통해 연결되어 있는 구조 - 단순 연결 리스트: 한 데이터가 다음 데이터(next)를 가리키고 있는 구조. 순서가 있다. - 이중 연결 리스트(doubly linked list): 연결 리스트에서 이전 데이터(previous)를 가리키는 링크를 추가한 구조 - 원형 연결 리스트(circular linked list): 이중 연결 리스트에서 맨 앞 데이터와 맨 뒤 데이터를 연결하는 링크를 추가한 구조 3) 스택(stack): 한쪽에서만 데이..