👉 정렬이란, 데이터를 특정한 기준에 따라서 순서대로 나열하는 것매번 가장 작은 것을 선택해서, 앞으로 보내는 과정 반복가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복하면 어떨까?N
스택 (Stack) 👉 박스 쌓기, 선입후출stack.push(element): 스택에 데이터 추가stack.pop() : 스택의 top 데이터 삭제stack.top() : 스택의 top 데이터 반환stack.size() : 스택의 현재 size 반환stack.emp
Brute (동물, 무식한) + Force (힘) 👉 무식하게 힘쓰는 알고리즘❓ 가능한 모든 경우의 수를 탐색하고, 조건에 맞는 결과만 가져온다선형 구조: 순차 탐색비선형 구조: BFS(넓이 우선 탐색), DFS(깊이 우선 탐색)선형 자료구조란 하나의 자료 뒤에 하나
👉 현재 상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘❗ 해를 찾는 도중 막히면 되돌아가서 다시 해를 찾음 ❗문제 링크 👉 N과 M (1)출처 👉 바킹독 - 백트래킹
그리디 알고리즘이란? 현재 상황에서 지금 당장 좋은 것만 고르는 방법 👉 매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다.
중복되는 연산을 줄이자 !! 비효율적인 피보나치 수열
반으로 쪼개면서 탐색하기💡 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘💡 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 특징💡 위치를 나타내는 변수 3개 사용 👉 시작점, 끝점, 중간점👉 찾으려는 데이터와 중간점 위치에 있는 데이터를 반복적
어떤 문제를 풀려고 할 때 그 문제를 비슷한 형태의 작은 부분 문제들로 쪼개서 그 부분 문제들의 답을 통해서 기존의 풀려고 했던 원래 문제의 답을 도출하는 방법을 분할 정복이라 한다. 이 과정에서 부분 문제들이 다시 Divide, Conquer, Combine 되기도
2차원 배열에 각 노드가 연결된 형태를 기록하는 방식모든 노드에 연결된 노드에 대한 정보를 차례대로 연결하여 저장👉 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘탐색 시작 노드를 스택에 삽입하고 방문 처리를 한다.스택의 최상단 노드에 방문하지 않은 인접 노드가