본문 바로가기

Study/Algorithm

(36)
큐(Queue) 큐(Queue)큐(Queue): 리스트의 한 쪽 끝에서는 삽입만, 나머지 한 쪽에서는 삭제만 하는 유한 순서 리스트.FIFO: First-In-First-Out 구조로 되어있다. 빨대로 버블티를 먹는다고 해보자. 먼저 빨대 속으로 들어온 버블이 입 속으로 들어간다.빨대에 먼저 들어온 버블이 먼저 나가는 구조가 Queue다. Front: 제일 먼저 들어온 원소. 삭제될때 여기부터 삭제된다.Rear: 제일 최근에 들어온 원소. 이쪽방향으로 삽입된다.enQueue: 인큐. 삽입. rear에서 발생deQueue: 디큐. 삭제. Front에서 발생 빈 큐에서는 (큐 막 생성하고나서 아무것도 안 넣었을 때) ; front, rear의 index를 -1로 둔다. 원소 하나하나 넣어가면서 rear는 증가, front는..
단순 연결 리스트 (Single Linked List) 연결 자료구조(Linked List)선형리스트는 배열로 구성했었다. 원소의 위치를 찾긴 쉽지만, 삽입/삭제하기가 번거로웠다. 시간도 오래 걸리고, 오버헤드도 많이 생기고.이를 해결하기 위한 자료구조로 '연결 자료구조'와 '비순차 자료구조'가 있다. 연결자료구조(Linked List)원소의 논리적인 순서와 물리적인 순서가 일치할 필요 X → Link에 의해 원소들을 연결하기 때문. 논리-물리 순서 맞추기 위한 오버헤드 발생도 X논리-물리 순서를 위한 오버헤드는 X. but 포인터에 대한 저장 공간은 추가로 필요 O고정크기 메모리 공간 X단순 연결 리스트(linked list), 이중 연결 리스트(double linked list), 원형 연결 리스트, 이중 원형 연결 리스트 노드(Node)배열에서 원소는 ..
선형리스트(개념) 선형리스트 (개념)자료를 표현하는 방법: 1. 순차 자료구조 2. 연결 자료구조리스트 중에 순서를 가지고 있는 것 - 선형리스트(순차리스트)선형리스트 - 선형 순차 리스트(순차 리스트), 선형 연결 리스트(연결 리스트)리스트는 보통 이렇게 표현한다: 리스트 이름 = (원소1, 원소2, 원소3) ex) 게임 = (오버워치, 배틀그라운드, 위쳐3) 선형 리스트(선형 순차 리스트)원소들 간의 논리적인 순서와 메모리에 저장하는 물리적인 순서가 같다. (순차 자료구조)따라서 메모리에 연속적으로 순서대로 저장되기 때문에, 시작 위치/원소의 크기를 알면 특정 원소의 위치를 알 수 있다. 원소 삽입원래 있던 리스트에서 새 원소를 넣을 자리를 만들어준다. (원소들을 뒤로 밀어서 빈칸을 만들어줌)새 원소 삽입 원소 삭제원..
2. 팩토리얼, 피보나치 + 계산에 소요된 시간 팩토리얼이나 피보나치 수열을 자바로 표현한다. +계산에 소요된 시간도 같이 구한다. for문을 돌리면 간단하긴 하겠지만, for이 아닌 재귀함수를 이용하여 만들 것이다. | 팩토리얼public static int recursiveFactorial(int n) { if(n==0) return 1; else return n*recursiveFactorial(n-1); } n! = n * (n-1)! = n * (n-1) * ··· 2 * 1 을 이용한 식이다. | 피보나치1. 1. 2. 3. 5. 8.... n번째 피보나치 수열의 수 Fn을 구하는 메소드를 작성해보자. F(n)= F(n-1) + F(n-2) (if n>=1)F(0)=0, F(1)=1 public static int BinaryFib(int ..