거꾸로 바라본 세상
article thumbnail
4. Queue(큐)
Algorithms/structure 2023. 4. 17. 09:48

Queue(큐) 정의 한쪽 끝에서 자료를 넣으면 다른 한쪽 끝에서 자료를 뺄 수 있는구조로 쉽게 말해서 먼저들어온 데이터가 먼저 나오는 구조라고해서 FIFO(First In First Out)라고 부른다. 큐의 연산 enqueue : 데이터를 큐에 삽입 dequeue : 제일 첫 번째 들어온 데이터를 제거 큐의 전단은 front, 후단은 rear로 이루어짐 새로운 데이터가 들어오면 rear가 하나씩 증가 데이터를 빼내면 front가 다음 queue에 저장되어 있는 데이터를 가리킴 enqueue void enqueue(Object[] queue, int data) { queue[rear++] = data; } dequeue Object dequeue(Object[] queue) { queue[front++..

article thumbnail
3. Stack(스택)
Algorithms/structure 2023. 4. 17. 09:45

스택(Stack) 먼저 들어간 데이터가 가장 마지막에 나오는 구조(Last In, First Out : LIFO) 삽입과 삭제가 한쪽 끝에서만 자료를 넣고 뺄 수 있다. ex) 자동메모리, 네트워크 프로토콜 스택(Stack)의 주요 기능 스택의 초기화 int stack[100]; //스택 배열 int size = 0; // 스태의 크기 삽입(Push) 스택 위에 새로운 노드를 쌓는 작업 void push(int data) { stack[size] = data; size = size + 1; } 삭제(Pop) 스택에서 최상위 노드를 걷어내는 작업 int pop() { if (size < 0) return 0; int pop = stack[size]; size = size - 1; return pop; } ..

1. 알고리즘 개요(Algorithm Overview)
Algorithms/structure 2023. 4. 10. 17:59

알고리즘(Algorithm) 알고리즘은 수학, 컴퓨터과학, 언어학 또는 관련분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것을 말한다. 계산 또는 작업을 처리하기 위한 순서 요리의 레시피(요리의 재료를 이용하여 레시피 대로 요리한 다음 요리를 완성) 특정문제를 컴퓨터로 해결하기 위한 순서 어떤 문제를 해결하는 방법을 모두 알고리즘이라 한다. 입력 0개 이상의 입력이 존재햐아한다 출력 1개 이상의 출력이 존재해야한다 명백성 각 명령어의 의미는 모호하지 않고 명확해야한다 유한성 한정된 수의 단계 후에는 반드시 종료되어야한다 유효성 각 명령어들은 실행 가능한 연산이어야 한다 코딩 테스트나 인터뷰에서 알고리즘을 보는 이유는 문제를 모델링하고 해결하는 능력을 알아보기 위..