전체 글 137

메소드 정리

Scanner 메소드 선언 import java.util.Scanner; Scanner 객체 생성 /* 클래스_이름 객체_이름 = new 클래스_이름(); */ Scanner sc = new Scanner(System.in); // Scanner 객체 생성 메소드 이용하여 입력받기 byte a = sc.nextByte(); // byte 형 입력 및 리턴 short b = sc.nextShort(); // short 형 입력 및 리턴 char c = sc.next().charAt(0);// char 형 입력 및 리턴 int d = sc.nextInt(); // int 형 입력 및 리턴 long e = sc.nextLong(); // long 형 입력 및 리턴 float f = sc.nextFloat();..

힙(Heap)

학습 목표 힙 자료구조의 이해 최소 힙과 최대 힙의 삽입, 삭제 과정의 이해와 구현 힙(Heap) : 최소 값 또는 최대 값을 빠르게 찾아내는데 유용한 자료구조입니다. 1. Tree가 Complete or Nearly Complete.(중복 값 허용, 반 정렬 상태) 2. 최대 힙(Max Heap) : 부모 노드의 키 값이 자식의 키 값보다 크거나 같습니다. 최소 힙(Min Heap) : 부모 노드의 키 값이 자식의 키 값보다 작거나 같습니다. 최소 힙(Min Heap) - 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 형태입니다. Operation of Min Heap 최소 힙 - 삽입(Insertion) 1. 트리의 가장 끝 위치에 데이터 삽입합니다. 2. 부모 노드와 키 값을 비교한 후 ..

연결 리스트(Linked List)

연결 리스트(Linked List) : 데이터 요소들이 노드(Node)들에 의해 연결된 자료 구조입니다. - 데이터를 링크로 연결해서 관리하는 자료구조입니다. - 자료의 순서는 정해져 있지만, 메모리상 연속성이 보장되지는 않습니다. 연결 리스트(Linked List) 기본 구조 노드(Node) : 데이터 저장 단위로, 값(Data)과 포인터(Link)로 구성되어있습니다. 포인터(Pointer) or Next or Link : 다음 노드나 이전 노드의 연결 정보 연결 리스트(Linked List)의 장점 - 데이터 공간을 미리 할당할 필요가 없습니다. - 즉, 리스트의 길이가 가변적이라 데이터 추가/삭제가 용이합니다. 연결 리스트(Linked List)의 단점 - 연결구조를 위한 별도 데이터 공간이 필요합..

해시 테이블(Hash Table)

해시 테이블(Hash Table) : 키(Key), 값(Value)을 대응시켜 저장하는 데이터 구조 - 키를 통해 해당 데이터에 빠르게 접근 가능합니다. 해싱(Hashing) : 키를 특정 계산식에 넣어 나온 결과를 사용하여 값에 접근하는 과정입니다. 키(key) : 해시 테이블 접근을 위한 입력 값입니다. 해시 함수(Hash Function) : 키를 해시 값으로 매핑하는 연산합니다. 해시 값(Hash Value) : 해시 테이블의 인덱스입니다. 해시 테이블(Hash Table) : 키-값(key-value)을 연관 시켜 저장하는 데이터 구조입니다. 해시 충돌 : 해시 함수를 통해 index값을 구했을 때 중복이 생기는 충돌입니다. - 해시 테이블의 같은 공간에 서로 다른 값을 저장하려는 경우입니다. ..

배열(Array)

배열(Array) : 각각의 개별 항목을 위치 번호로 참조할 수 있도록 항목을 번호순으로 배열하는 데이터 구조입니다. - 많은 수의 데이터를 다룰 때 사용하는 자료구조입니다. - 각 데이터를 인덱스와 1:1 대응하도록 구성됩니다. - 데이터가 메모리 상에 연속적으로 저장됩니다. 데이터구조(Data Structure) : 하나의 단위로 취급될 수 있도록 여러 개의 데이터 항목을 뭉쳐서(chunked) 구성됩니다. 길이(Length) : 배열에서 항목들의 수 입니다. 기본 자료형(Base Type) : 배열의 개별 항목 자료형입니다. 인덱스(Index) : 배열에서 항목의 위치 번호 입니다. 배열(Array)의 장점 - 인덱스를 이용하여 데이터에 빠르게 접근 가능합니다. * 더 나아가기(OS) 배열은 Spa..

큐(Queue)

큐(Queue) : Queue is like waiting line rear : Insertion 하는 곳 front : Deletion 하는 곳 FIFO(First-In First-Out) 먼저 들어온 데이터가 먼저 나가는 구조 ex) 입력 순서대로 데이터 처리가 필요한 경우 사용 : 프린터 출력 대기열, BFS(Breath-First Search), 식당 웨이팅 등 Queue의 구조 - Enqueue : Queue에 데이터 추가 - Dequeue : Queue에 데이터 제거 (Queue) Front : retrieve the element at the front (Queue) Rear : retrieve the element at the rear Queue Operation - Enqueue : Qu..

스택(Stack)

스택(Stack) : To put things in a pile. Top : 모든 추가 및 삭제는 위 그림처럼 한쪽(Top)에서만 가능합니다. (* Queue는 two ends에서 사용가능) LIFO(Last In First Out) - Data Series를 스택에 삽입한 후, 제거하려고 한다면 제거되는 순서는 삽입한 순서의 반대가 됩니다. ex) 데이터 입력 순서 : {5, 10, 15, 20} 데이터 제거 순서 : {20, 15, 10, 5} 스택의 기본 용어 - Bottom : 가장 밑에 있는 데이터 - Top : 가장 위에 있는 데이터 - Capacity : 스택에 담을 수 있는 데이터의 총 용량 - Size : 현재 스택에 담겨있는 데이터의 개수 Basic Stack Operations - P..