반응형 분류 전체보기221 [자료구조 & 알고리즘] 이분 탐색 (Binary Search) 이분 탐색 (Binary Search) 알고리즘이분 탐색(Binary Search)은 정렬된 배열에서 특정 값을 빠르게 찾는 알고리즘입니다. 탐색 범위를 절반으로 줄이기 때문에 시간 복잡도가 O(logN)O(\log N)으로 매우 빠릅니다. 이번 포스트에서는 이분 탐색의 개념, 동작 방식, 그리고 C 언어로 구현한 예제를 자세히 설명합니다.1. 이분 탐색이란?이분 탐색은 데이터를 절반씩 나누며 탐색 범위를 좁혀가는 방식으로 동작합니다. 이 과정은 반복적으로 수행되어 결국 원하는 값에 도달하게 됩니다.단, 데이터가 반드시 정렬되어 있어야 한다는 전제 조건이 있습니다.2. 이분 탐색의 동작 과정배열의 중간 값을 선택합니다.중간 값이 찾고자 하는 값과 같으면 탐색을 종료합니다.중간 값이 찾고자 하는 값보다 .. 2025. 2. 3. C - [시간초과 백준 11000] 강의실 배정 (feat. 우선순위 큐 미학습 그리디 알고리즘 학습 중 풀게된 문제입니다. 그리디 알고리즘 방법으로 수업을 퀵 정렬 한 후 카운팅을 진행하였으나 시간 초가 발생 현재 코드는 O(N²) 시간 복잡도를 가집니다.각 강의에 대해 중첩 루프를 사용해 배정할 강의를 찾고 있기 때문입니다.N이 최대 200,000일 수 있으므로 시간 초과가 발생할 가능성이 높습니다. 문제 분류를 보니 우선순위 큐가 언급되어 있는 것을 보아 우선순위 큐를 학습하여 해당 코드를 새롭게 접근할 필요성이 있다고 생각이 듭니다. 하단은 시간초과가 난 코드입니다. /*C_BOJ_11000_강의실 배정https://www.acmicpc.net/problem/11000*/#include #include #define MAX 200000int compare(const void .. 2025. 2. 3. C - [백준 11047] 동전 0 (feat. 탐욕알고리즘) 2025.02.02 - [Computer Science/자료구조 & 알고리즘] - [자료구조 & 알고리즘] 그리디 알고리즘(Greedy Algorithm) [자료구조 & 알고리즘] 그리디 알고리즘(Greedy Algorithm)그리디 알고리즘(Greedy Algorithm)1. 개요그리디 알고리즘(Greedy Algorithm)이란 현재 단계에서 가장 최적의 선택을 반복하여 문제를 해결하는 알고리즘입니다. 탐욕법이라고도 불리는 이 방식은 매 순rnasterofmysea.tistory.com 동전 0 (백준 11047번) 문제 풀이문제 설명N개의 종류의 동전이 있고, 각 동전의 가치가 주어집니다. 이 동전들을 이용하여 합이 K가 되도록 할 때, 필요한 동전의 최소 개수를 구하는 문제입니다. 동전의 가치.. 2025. 2. 3. [자료구조 & 알고리즘] 그리디 알고리즘(Greedy Algorithm) 그리디 알고리즘(Greedy Algorithm)1. 개요그리디 알고리즘(Greedy Algorithm)이란 현재 단계에서 가장 최적의 선택을 반복하여 문제를 해결하는 알고리즘입니다. 탐욕법이라고도 불리는 이 방식은 매 순간 최선의 선택이 결국 전체 문제의 최적해로 이어진다고 가정합니다.이 접근법이 성공적으로 작동하려면 문제에 대한 몇 가지 조건이 만족되어야 합니다. 그렇지 않으면 전역 최적해(Global Optimal Solution)를 보장하지 못할 수 있습니다.2. 그리디 알고리즘의 조건Greedy 선택 속성 (Greedy Choice Property)각 단계에서의 선택이 이후 단계에 영향을 주지 않고, 그 순간 최적의 선택을 하면 전체 최적해에 도달할 수 있는 속성을 의미합니다.최적 부분 구조 (O.. 2025. 2. 2. C - [그리디 이해 부족 백준 2457] 공주님의 정원 2025. 1. 31. [자료구조 & 알고리즘] DP 추천 문제 및 유형 분류 (feat. 백준) 2025.01.13 - [Computer Science/자료구조 & 알고리즘] - [자료구조 & 알고리즘] 다이나믹 프로그래밍(Dynamic Programming) 이해하기 [자료구조 & 알고리즘] 다이나믹 프로그래밍(Dynamic Programming) 이해하기다이나믹 프로그래밍(Dynamic Programming)이란?다이나믹 프로그래밍(Dynamic Programming, DP)은 복잡한 문제를 작은 하위 문제로 나누어 해결하고, 그 결과를 저장하여 동일한 문제를 반복적으로 계산하지rnasterofmysea.tistory.com 📚 DP 문제 유형별 분류와 접근 방법DP(동적 계획법)는 알고리즘 문제에서 자주 등장하는 중요한 주제입니다. 많은 문제들이 단순한 점화식부터 최적 경로, 부분 수열 탐색.. 2025. 1. 30. 이전 1 ··· 19 20 21 22 23 24 25 ··· 37 다음 반응형