문제를 푸는 방법, 정차를 의미어떤 특정한 문제가 있을 때 그 어떠한 경우를 생각해도 같은 방법으로 답을 도출할 수 있다.무수한 선택지 중에서 무작정 값을 정해 풀어 보는 행위를 반복무작정 진행하는 동작을 막힐 때까지 반복하고, 막히면 한 단계 되돌아가서 다음 선택지를
알고리즘의 성능을 나타내는 척도특정한크기의 입력에 대하여 알고리즘이 얼마나 오래 걸리는지를 의미알고리즘을 위해 필요한 연산의 횟수시간 복잡도를 표현할 때는 빅오(big-O)표기법을 사용간단하게 가장 빠르게 증가하는 항만을 고려하는 표기법본 소스코드에서 가장 영향력이 큰
단순하지만 강력한 문제 해결 방법현재 상황에서 지금 당장 좋은 것만 고르는 방법매 순간 가장 좋아 보이는 것을 선택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다.거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가
많은 양의 데이터 중에서 원하는 데이터를 찾는 과정데이터를 표현하고 관리하고 처리하기 위한 구조그중 스택과 큐는 자료구조의 기초 개념으로 다음의 두 핵심적인 함수로 구성삽입(Push) : 데이터를 삽입한다.삭제(pop) : 데이터를 삭제한다.오버플로(Overflow)
탐색 알고리즘 DFS / BFS DFS(Depth-First Search) 깊이 우선 탐색이라고도 부르며, 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 그래프의 기본 구조 노드(Node)or정점(Vertex) 간선(Edge)으로 표현 그
데이터를 특정한 기준에 따라서 순서대로 나열하는 것다양한 정렬 알고리즘 중 많이 사용하는 선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬만 언급가장 작은 것을 선택한다는 의미데이터가 무작위로 여러 개 있을 때, 이 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와
범위를 반씩 좁혀가는 탐색 순차 탐색 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 데이터의 정렬 여부와 상관없이 가장 앞에 있는 원소부터 하나씩 확인해야 한다 따라서 데이터의 개수가 N개일 때 최대 N번의 비교 연
한 번 계산한 문제는 다시 계산하지 않도록 하는 알고리즘메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있는 방법동적 계획법이라고 표현하기도 한다.다이나믹 프로그래밍으로 해결할 수 있는 대표적인 예시이다.피보나치 수열은 이전 두 항의 합을 현재의 항
가장 짧은 경로를 찾는 알고리즘최단 경로 문제는 보통 그래프를 이용해표현하는데 각 지점은 그래프에서 '노드'로 표현되고, 지점 간 연결된 도로는 그래프에서 '간선'으로 표현된다.그리디 알고리즘과 다이나믹 프로그래밍 알고리즘이 최단 경로 알고리즘에 그래도 적용된다는 특징
다양한 그래프 알고리즘 그래프란 노드와 노드 사이에 연결된 간선의 정보를 가지고 있는 자료구조를 의미 트리 자료구조 부모에서 자식으로 내려오는 계층적인 모델 다익스트라 최단 경로 알고리즘에서는 우선순위 큐를 사용 우선순위 큐 우선순위 큐를 규현하기 위해 최소 힙이나
하나의 그래프가 있을 때 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프를 의미한다.최소한의 비용으로 구성되는 신장 트리를 찾아야 할 때N개의 도시가 존재하는 상황에서 두 도시 사이에 도로를 놓아 전체 도시가 서로 연결될 수 있게 도로를 설치하는 경우두 도시
순서가 정해져 있는 일련의 작업을 차례대로 수행해야 할 때 사용할 수 있는 알고리즘방향 그래프의 모든 노드를 '방향성에에 거르지 않도록 순서대로 나열하는 것'이다.대표적인 예시로는 선수과목을 고려한 학습 순서 설정이 있다.진입차수 :특정한 노드로 '들어오는' 간선의 개