반응형

알고리즘 33

[알고리즘] 완전 탐색 알고리즘 (Brute-Force Algorithm)

완전 탐색 알고리즘 Brute-Force 란? Brute Force는 말 그대로 “무차별 대입 방식“을 의미합니다. 가능한 모든 해답 후보를 하나하나 모두 시도해보는 방법으로, 문제를 해결하는 가장 직관적이면서도 비효율적인 접근 방식입니다. ✅ 개념 및 특징정의 : 가능한 모든 해를 전부 탐색하여 정답을 찾음전략 : 논리적인 계산 없이 모든 경우를 대입시간 복잡도: 일반적으로 매우 높음 (O(n), O(n^2), O(2^n)특징 :구현이 매우 간단입력이 적은 경우 유용함항상 정답을 찾을 수 있음 (단, 시간이 오래걸림)최적의 알고리즘은 아님 ✅ 사용 조건더 효율적인 해결책이 존재하지 않을 때가능한 모든 해를 확인해볼 필요가 있을 때문제의 입력 크기가 작아서 탐색이 부담되지 않을 때완전한 탐색이 요구되는 ..

[알고리즘] 탐욕 알고리즘(Greedy Algorithm) 이란?

탐욕 알고리즘(Greedy Algorithm) 이란? Greedy Algorithm(탐욕 알고리즘)은 문제를 해결하는 데 있어 매 순간마다 가장 좋아 보이는 선택(최적의 선택)을 하는 방식입니다. 전체 문제 해결을 위해 가능한 선택지 중 그 순간 최선의 선택을 반복하여 결과를 도출합니다.이 알고리즘의 핵심은 “지금 가장 좋아 보이는 선택이 전체적으로도 최적의 결과로 이어진다”는 믿음에 기반합니다. ✅ 탐욕 알고리즘의 절차 1. 선택 절차 (Selection Procedure) 현재 상황에서 가장 최적인 선택을 한다. 예를 들어, 가장 작은 비용, 가장 높은 가치 등을 기준으로 결정한다. 2. 적절성 검사 (Feasibility Check) 선택한 값이 문제의 조건을 만족하는지 검사한다. 조건을 만족하지 ..

[알고리즘] 시간 복잡도란? 알고리즘 효율을 판단하는 핵심 개념

빅오(Big-O) 표기법으로 알아보는 시간 복잡도의 모든 것⏱ 시간 복잡도(Time Complexity)란?시간 복잡도는 알고리즘이 입력값(Input)의 크기(n)에 따라 수행 시간(연산 횟수)이 어떻게 변하는지를 나타내는 지표입니다.즉, 어떤 코드를 작성했을 때 데이터의 양이 증가하면 실행 시간도 어떻게 변할지를 예측할 수 있도록 도와주는 개념입니다. 🧮 시간 복잡도 표기법: Big-O, Big-Ω, Big-θ시간 복잡도는 주로 다음과 같은 세 가지 수학적 표기법으로 표현됩니다.표기법의미설명표기법의미설명Big-O (O)최악의 경우가장 느릴 수 있는 경우의 실행 시간을 나타냅니다. 일반적으로 알고리즘 분석에서 가장 많이 사용됩니다.Big-Ω (Omega)최선의 경우가장 빠르게 종료될 수 있는 경우를 나..

반응형