✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/개념

✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/개념

    [알고리즘] Queue 개념 + java.util.Queue

    큐 (Queue) 개념 큐 란? : First In First Out 의 특징을 가지고 있는 선형적 자료구조 맛집에 가서 줄을 설 때를 생각하시면 됩니다. 먼저 들어온 사람이 제일 먼저 처리가 되고, 그 이후로 줄줄이 처리가 됩니다. 이러한 데이터 처리의 구조를 가진 자료구조를 큐 라고 합니다. 특징 큐는 선입선출(FIFO: First In First Out) 의 특징을 가지고 있습니다. 보통 BFS 를 구현할 때 많이들 사용됩니다. 또한, 제일 첫 요소를 나타내는 front 와 제일 마지막 요소를 나타내는 rear 라는 인덱스 키워드를 가지고 있습니다. 스택과 마찬가지로 연결 리스트로 구현될 수 있습니다. Java Queue API - LinkedList 클래스 사용 Stack 과는 다르게도 Queue..

    [알고리즘] Stack 개념 + java.util.Stack

    스택 (Stack) 개념 스택이란? : Last In First Out 의 특징을 가지고 있는 선형적 자료구조 마치 접시를 쌓아둔 듯한 자료구조입니다. 제일 밑에 있는 접시를 빼면 위의 있는 접시들이 흔들려 깨질 수가 있습니다. 따라서, 접시를 빼낼 때는 위부터 꺼내야합니다. 이와 같은 데이터 저장 구조를 가진 것을 바로 스택 이라고 합니다. 특징 스택은 후입선출(LIFO: Last In First Out) 의 특징을 가지고 있으며, 프로그래밍 언어에서 메서드 콜을 할 때 사용되어 집니다. 이를 Functional Call 이라고 합니다. 메서드를 호출할 때 스택을 사용하여 너무 많은 메서드가 쌓이다보면 스택 오버 플로우(overflow) 가 발생합니다. 스택은 배열이나 연결리스트를 이용하여 구현될 수 ..

    [알고리즘] 순열, 조합, 부분집합 + 구현

    순열 (Permutation) 개념 순열이란? : 순서를 고려하여 서로 다른 것들 중 몇 개를 뽑아 한 줄로 나열하는 것 자리의 순서를 고려합니다. 즉, 조합과는 다르게 1-2-3 과 2-3-1 을 다르게 봅니다. 구현 package day220804.practice; import java.util.Arrays; import java.util.Scanner; public class Permutation { static int N, K; static int[] numbers; static boolean[] isSelected; private static void perm(int cnt) { // 기저 조건 if (cnt == K) { System.out.println(Arrays.toString(numbe..

    [알고리즘] DFS, BFS + 구현

    ✅ 탐색이란? (Search) 알고리즘에서 탐색 개요 ◾ 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 ◾ 프로그래밍에서는 그래프, 트리 등의 자료구조 안에서 탐색하는 문제가 자주 등장한다. ◾ 대표적인 탐색 알고리즘 DFS BFS ◾ 자료구조란? 데이터를 표현하고 관리 및 처리하기 위한 구조 ◾ DFS/BFS에서 사용하는 자료구조 스택 ➡ LIFO (Last In First Out) 큐 ➡ FIFO (First In First Out) ◾ 그래프란? 노드 (Node, Vertex) 와 간선 (Edge)로 이루어진 자료구조 인접 행렬, 인접 리스트로 표현된다. ✅ DFS (Depth-First Search) 깊이 우선 탐색 ◾ 깊이 우선 탐색이라고 부른다. ◾ 그래프에서 깊은 부분을 우선적으로 탐색..

    [알고리즘] 개요, 시간복잡도 효율성 etc

    알고리즘 개념을 공부하려고 합니다. 알고리즘 무척 중요합니다. 중요한데 실력은 욕심만큼 잘 늘진 않네요. 😂 웃픕니다. 그래도 꾸준히 하면 언젠가 늘게 되겠죠? 인덱스는 다음과 같습니다. 1. 개요 2. 효율성 3. 문제의 크기 4. 시간 복잡도 5. 메모리 ✅ 개요 알고리즘이란? ☘️ 알고리즘 (Algorithm) : 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것 입력을 통해 알고리즘으로 문제를 해결하고, 정답을 출력합니다. 어떤 문제를 해결하는 방법을 모두 알고리즘 이라고 할 수 있습니다. 많은 개발은 어떠한 문제를 해결해야 하는 것이 목적인 경우가 많습니다. 알고리즘 공부 법 처음 공부할 때는 2-3일 고민 어느정..