일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 강아지 열사병
- 강아지 더위
- 반려견 사료등급
- 반려견 유기농
- 반려견 홀리스틱
- 쿠팡메크로
- 반려견 더위
- 반려견 유기농 사료
- 닥스훈트
- 샤로수길 데이트
- 강아지 유기농 사료
- 서울대입구 맛집
- 강아지
- 강아지종류
- 강아지 홀리스틱
- 동인천 맛집
- 홀리스틱 유기농
- 국비지원 예습
- 부산 맛집
- 반려견
- 자동화봇
- 쿠팡매크로
- 샤로수길 맛집
- 신포동 맛집
- 반려견 열사병
- 티켓팅매크로
- 반려견 종류
- 강아지 유기농
- 티켓팅메크로
- 강아지 종류
- Today
- Total
목록코딩일기/자료 구조 (8)
심심한잉여의 잡동사니
덱(Dequeue)은 Doubly-ended Queue의 약자로서 양쪽 끝에서 추가, 삭제가 가능한 선형 구조 형태의 자료구조다. 데큐, 데크라고도 하며 스택과 큐의 장점을 모아서 만들어진 형태를 보인다. 추가, 삭제가 되는 부분의 명칭을 Front, Rear라고 칭한다. Dequeue의 기본 흐름은 아래 그림과 같다. - 입력과 출력은 양 방향으로 가능하다. - 입력과 출력의 순서를 마음대로 정할 수 있다. - Enqueue(입력) 및 Dequeue(삭제)의 실행 속도는 O(1)이다. 덱에는 제약조건을 걸어 사용 목적을 달리하는 구조 또한 있다. 바로 Scroll과 Shelf다. - Scroll : 입력제한 덱 입력을 한곳에만 제한을 주는 덱 (삭제는 양방향에서 가능) - Shelf : 출력(삭제)제한..
추상 팩토리 패턴(Abstract Factory Pattern)이란? 서로 관련이 있는 객체들을 통쨰로 묶어서 팩토리 클래스로 만들고 이들 팩토리를 조건에 따라 생성하도록 다시 팩토리를 만들어 객체를 생성하는 패턴 간단하게 보자면 팩토리 메서드 패턴을 한 단계 더 캡슐화한 방식이라 볼 수 있다. public class Phone { private String prodName; public void setProdName(String prodName){ this.prodName = prodName; } public String getProdName(){ return this.prodName; } } public class ApplePhone implements Phone{ public ApplePhone()..
싱글톤(Singleton) 패턴이란? 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. public class Singleton { private static Test test = new Test(); private Test() { // 생성자는 외부에서 호출 못하게 private으로 지정 } public static Test getTest(){ return test; } } 장점 싱글톤은 메모리 측면에서 처음에만 new 연산자를 통해 고정된 메모리 영역을 사용하는 것으로 메모리 측면에서 이점을 가져올 수 있다. 따라서, 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있으며 이미 생성되어 있는 인스턴스를 활용하여 속도도 더 빠르다는 장점이 있다. 또 다른 장점으론 다른 고셍서도 사용할 때 ..
디자인 패턴이란? - 디자인패턴이란 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것 - 디자인 패턴 계의 교과서로 불리는 GoF의 디자인패턴 에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴", "구조 패턴", "행동 패턴" 3가지로 구분하고 있다. 디자인 패턴 구조 - 콘텍스트 ㄴ 문제가 발생하는 여러 상황을 뜻한다. : 패턴이 적용 될 수 있는 상황을 뜻함 ㄴ 경우에 따라서는 패턴이 유용하지 못한 상황을 나타내기도 한다. - 문제 ㄴ 패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈들을 기술한다. ㄴ 이 때 여러 제약 사항과 영향력도 문제 해결을 위해 고려해야 한다. - 해결 ㄴ 문제를 해결하도록 설계를 구성하는 요소들과 그 요소들 사이의 ..
Queue(큐)란? 큐는 자료구조의 스택과 반대의 수조라고 볼 수 있다. 큐는 FIFO(선입선출)의 형태를 가지고 있으며 가장 먼저 들어온 데이터가 가장 먼저 나가는 구조를 뜻한다. - Enqueue : 맨 뒤에 데이터를 추가 - Dequeue : 큐 맨 앞쪽의 데이터를 삭제 특징 1. 큐의 한쪽을 Front로 정하여 삭제 연산만을 수행하게 된다. 2. Front와 반대 쪽을 Rear로 정하여 삽입연산만 수행하게 된다. 3. 그래프 넓이 우선 탐색(BFS)에서 사용된다. 4. 많은 입력을 처리 하지 못할 때, 버퍼(큐)를 만들어 대기 시킨 후 먼저 들어온 입력먼저 처리한다. Queue 예제 Queue queue = new LinkedList(); queue.offer(1); queue.offer(2); ..
스택은 쌓다라는 의미를 가지고 있으며 많이 알려진 것으론 LIFO(선입후출)라고 한다. 먼저 들어온 데이터가 늦게 나가는 구조이기 때문이다. 그리고 JAVA에서는 Stack클래스를 기본적으로 지원해주고 있다. Stack stack = new Stack(); 위 코드와 같이 선언이 가능하다. 지원하는 메소드로는 - push() : 스택에 데이터 입력 - pop() : 스택에 제일 늦게 들어온 데이터를 반환 후 스택에서 제거 - peek() : 스택에 제일 늦게 들어온 데이터를 반환 - empty() : 스택에서 찾는 값의 인덱스 반환 - search() : 스택이 비어있는지 확인 위 메소드들이 기본 제공이 된다. 이를 Java List를 이용해서 구현을 해보겠다. // list 생성 후 스택처럼 사용하기 ..
public class LinkedList{ class Node{ E data; Node next; public Node(E obj){ this.data = obj; this.next = null; } } Node node(int index) { // 첫 번째 노드부터 찾기 Node x = head; for (int i = 0; i < index; i++){ // 첫번째 노드에서 부터 찾으려는 인덱스만큼 next해서 찾는다. x = x.next; } return x; } private Node head; private Node tail; private int size; public LinkedList() { head = null; size = 0; } public void addFirst(Object o..
자료구조란 컴퓨터에서 처리할 자료를 효율적으로 관리하고 구조화시키기 위한 학문이다. 즉, 자료를 효율적으로 사용하기 위해서 자료의 특성에 따라서 분류하여 구성하고 저장 및 처리하는 모든 작업을 의미한다. [출처]네이버 백과사전 자료구조는 선형과 비선형으로 구분된다. 선형 구조는 자료를 구성하는 데이터를 순차적으로 나열시킨 형태를 의미한다. 비선형구조는 하나의 자료 뒤(안)에 여러개의 자료가 존재할 수 있는 것을 의미한다. 출처: https://allg.tistory.com/29 [프로그래밍 해볼까]