본문 바로가기

분류 전체보기64

BFS, DFS bfs, dfs 얘기를 하기 전 기본 그래프 알고리즘에 대해 살펴보겠습니다. 그래프 알고리즘? 그래프 알고리즘은 실제 세계의 다양한 문제를 모델링하고 해결하는데 필수적인 도구입니다. 사람들 간의 소셜 네트워크, 웹페이지의 링크 구조, 도로 네트워크의 복잡한 관계 표현. 물류, 통신, 교통의 경로 문제 해결등 다양한 분야에서 중요한 역할을 수행하며, 이를 통해 우리는 복잡한 문제를 효과적으로 해결할 수 있습니다. 그렇다면 컴퓨터에서 그래프를 어떻게 표현할까요? 인접행렬과 인접리스트를 사용해 표현합니다. 어떻게 표현하는지 알았으니 인접행렬과 인접리스트를 어떻게 들여다볼까요? 여기서 그래프 알고리즘이 사용됩니다. 기본적인 그래프 알고리즘은 1. 너비 우선 탐색(BFS, Breadth-First Search):.. 2023. 11. 10.
[Algorithm] Algorithm 소개 알고리즘은 원하는 결과를 생성하기 위해 특정 순서로 수행해야 하는 일련의 명령을 정의하는 단계별 절차입니다. 알고리즘은 일반적으로 기본 언어와 독립적으로 개발됩니다. 즉, 하나 이상의 프로그래밍 언어로 알고리즘을 구현할 수 있습니다. 모호성, 정교함, 효율성 및 언어 독립성은 알고리즘의 일부 특성입니다. 알고리즘의 확장성과 성능은 그 중요성에 기여하는 주요 요인입니다. What is an Algorithm? 알고리즘이라는 단어는 "계산 또는 기타 문제 해결 작업에서 따라야 하는 일련의 유한한 규칙 또는 지침" 또는 "자주 재귀 작업을 포함하는 유한한 수의 단계에서 수학 문제를 해결하는 절차"를 의미합니다. 알고리즘은 컴퓨터가 계산 또는 기타 문제 해결 작업을 수행하기 위해 따라야 하는 일련의 명령입니다... 2023. 11. 4.
복잡도(BigO,시간,공간) 복잡도는 알고리즘이나 데이터 구조의 성능을 분석하거나 비교하는 방법입니다. 주로 시간 복잡도와 공간 복잡도 두 가지를 고려합니다. 1. 시간 복잡도(Time Complexity): 이는 알고리즘이 문제를 해결하는 데 필요한 시간을 의미합니다. 보통 입력의 크기에 따라 얼마나 많은 계산이 필요한지를 측정합니다. 예를 들어, 배열에서 최대값을 찾는 알고리즘의 경우, 배열의 모든 요소를 검사해야 하므로 시간 복잡도는 O(n)이 됩니다. 여기서 n은 배열의 크기입니다. 2. 공간 복잡도(Space Complexity): 이는 알고리즘이 문제를 해결하는 데 필요한 메모리 사용량을 의미합니다. 예를 들어, 재귀 함수는 호출될 때마다 스택에 데이터를 저장하므로 공간 복잡도가 증가합니다. 빅 오 표기법(Big O no.. 2023. 10. 21.
반복문과 재귀함수 반복문과 재귀함수는 프로그래밍에서 특정 코드를 여러 번 실행하는 데 사용되는 기본적인 구조입니다. 1. 반복문 (Loops): 반복문은 동일한 코드를 여러 번 실행하려고 할 때 사용됩니다. 가장 일반적인 유형의 반복문에는 for, while이 있습니다. For loop: For loop는 주어진 조건이 충족되는 동안 코드 블록을 반복합니다. 예를 들어, 배열의 모든 요소를 순회하거나 특정 횟수만큼 반복할 수 있습니다. 예시: for i in range(5): print(i) While loop: While loop도 주어진 조건이 참인 동안 코드 블록을 계속해서 반복합니다. 예시: i = 0 while i < 5: print(i) i += 1 2. 재귀함수 (Recursion): 재귀함수란 함수가 자신을.. 2023. 10. 21.
728x90