본문 바로가기
728x90

✏️ CS/자료구조 & 알고리즘9

[알고리즘] 시뮬레이션 및 완전탐색 알고리즘 자바로 시뮬레이션 및 완전탐색 알고리즘 학습하기     시뮬레이션과 완전탐색 알고리즘 시뮬레이션은 주어진 문제를 단계별로 모사하여 해결하는 방식이고, 완전탐색은 가능한 모든 경우를 탐색하여 해를 찾는 방법입니다.    1. 시뮬레이션 알고리즘시뮬레이션 알고리즘은 문제의 조건을 단계별로 모사하여 해결하는 방식입니다. 이는 주로 게임, 물리 모델링, 경로 추적 등의 문제에서 사용됩니다. 로봇 청소기 시뮬레이션 예제 로봇 청소기가 주어진 명령어에 따라 방 안을 이동하는 시뮬레이션을 구현해보겠습니다.문제방은 2차원 평면으로 주어집니다.로봇 청소기는 특정 위치에서 시작하며, 주어진 명령어에 따라 상하좌우로 이동합니다.명령어는 'U'(위), 'D'(아래), 'L'(왼쪽), 'R'(오른쪽)으로 구성됩니다.public.. 2024. 5. 3.
[알고리즘] JAVA 그리디 알고리즘(Greedy Algorithm) 그리디 알고리즘에 대해 알아보기    그리디 알고리즘(Greedy Algorithm)이란 문제를 해결할 때마다 현재 상황에서 가장 최적이라고 생각되는 선택을 하는 방식을 통해 전체 문제를 해결하는 알고리즘입니다. 그리디 알고리즘은 많은 최적화 문제를 빨리 해결할 수 있고 직관적이며 구현이 간단한 경우가 많습니다. 하지만 항상 최적의 해를 보장하지 않기 때문에 주의해야 합니다.    기본 개념현재 선택이 최적 : 각 단계에서 가장 최적이라고 생각되는 선택을 함결과가 최적 : 전체 결과가 최적의 해를 이루어야 함  장점간단한 구현 : 그리디 알고리즘은 비교적 간단하게 구현할 수 있음빠른 실행 : 대부분의 그리디 알고리즘은 반복문을 사용하여 선형 시간 안에 해결할 수 있음 효율성 : 자주 최적의 해를 구할 수.. 2024. 5. 1.
[자료구조] 리스트(List) 자료구조,  리스트(List)에 대해 알아보기        List의 구조와 특징  리스트란 선형 데이터를 저장하는 데이터 타입 중 하나입니다.  리스트는 각 요소가 메모리 상에 연속적일 필요가 없으며, 동적으로 크기가 조정됩니다.  데이터를 선형적으로 관리하지만 각 요소들이 포인터를 통해 다음 요소와 연결되기 때문에 다양한 데이터 타입의 데이터를 담을 수 있는 구조입니다.  리스트는 구현 방법에 따라 순차 리스트와 연결 리스트로 나뉩니다.  순차 리스트는 배열을 기반으로 구현된 리스트이고, 연결 리스트는 메모리의 동적 할당을 기반으로 구현된 리스트입니다.    배열 리스트 (Array List) 배열 리스트는 추상적 자료형인 리스트를 배열을 사용해 구현한 것입니다.  1. 장점 데이터 참조 용이인덱스 .. 2024. 4. 30.
[자료구조] 큐(Queue) 자료구조, 큐(Queue)에 대해 알아보기      Queue의 구조와 특징 큐는 추상자료형 중 하나입니다. 큐의 주요 작업은 큐의 뒤쪽에 요소를 추가하는 Enqueue와 큐의 앞쪽에 요소를 제거하는 Dequeue로 나뉩니다. 선입선출(First In First Out) 구조를 가짐 가장 먼저 들어온요소가 가장 먼저 제거됨    Queue 의 종류 큐에는 2가지 종류가 있습니다. 바로 선형큐와 환형큐입니다.  1.선형큐(Linear Queue)선형큐는 큐의 가장 기본 형태입니다. 요소들은 선형적으로 정렬돼있음고정된 크기를 갖고 있음요소를 제거한 후 재사용 하지 못하는 underflow 문제가 발생할 수 있음  2.환형(Circular Queue) 환형큐는 선형 큐의 한계를 극복하기 위해 설계된 형태입니다.. 2024. 4. 30.
[자료구조] 스택(Stack) 자료구조,  스택(Stack)에 대해 알아보기         Stack의 구조와 특징  스택은 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 단방향 형식의 자료 구조입니다.  LIFO(Last In First Out) 후입선출 방식을 사용한다. Bottom은 가장 밑에 있는 요소 또는 인덱스를 의미한다.Top은 가장 위에 있는 요소 또는 인덱스를 의미한다. Capacity는 스택에 담을 수 있는 데이터의 최대 개수를 의미한다. Size는 스택에 현재 담겨있는 데이터의 개수를 의미한다.    Stack의 선언 자바에서 스택의 선언은 Stack 스택이름 = new Stack(); 형태로 선언할 수 있습니다.  //int형으로 선언 Stack stackInt = new Stack();//Str형으로 선언Stack .. 2024. 4. 26.
728x90