본문 바로가기

Greedy3

[ 백준 - 14247 ] 나무 자르기 난이도 : S2Link  : https://www.acmicpc.net/problem/14247Tag : Greedy 문제 탐색하기 - n개의 나무가 있다.- n일 산에 오르면서 하루에 하나씩 잘라서, 얻을 수 있는 최대 나무의 양을 구하시오. 시도 1 ( 성공 😲)시간복잡도⏰얻을 수 있는 최대 나무의 양을 구하려면 매일 가장 긴 나무를 자르면됩니다.그렇다면 매번 나무의 길이를 계산하고 정렬해줘야합니다.구현은 단순할것 같지만 시간내에 가능한지가 관건인것 같습니다.최대인 n=100,000일때 퀵소트의 시간복잡도는 O(nlogn) 이므로100,000*17 = 1,700,000. 총 n일 반복하므로 1,700,000 * 500,000  = 170,000,000,000 너무 큽니다. 그렇다면 매번 정렬을 하지.. 2025. 4. 12.
[ 백준 - 19941 ] 햄버거 분배 난이도 : S3Link  : https://www.acmicpc.net/problem/19941Tag : Greedy 문제 탐색하기 - 식탁의 길이 N, 햄버거를 선택할 수 있는 거리 K일때 햄버거를 먹을 수 있는 사람의 최대수를 구하는 게 목표이다.- N은 1이상 20,000이하, K는 1이상 10이하이다. 시도 1 ( 성공 😲)시간복잡도⏰이미 Greedy알고리즘이라는 것을 알고있지만 아무것도 모른다고 가정해보려고합니다.사람(P)는 K거리만큼의 모든 위치를 확인하여 햄버거를 선택할 수 있습니다.최대 K가 10일때 10 * 2 = 20칸을 확인해야합니다. 만약 20칸 내에 양쪽으로 햄버거가 20개 있다고 생각해봅시다.그렇다면 한 사람이 햄버거를 선택하는 20개의 경우의 수가 있습니다.다음 사람은 어떨까.. 2025. 4. 11.
[ 이론 ] - Greedy 알고리즘 미래를 고려하지 않고 오직 현재 시점에 가장 좋은 선택을 한다Greedy(탐욕) 알고리즘이라는 이름과는 다르게 멋지다?라고 생각하는 Greedy 알고리즘에 대해 배워보겠습니다. 그리디 문제의 대표적인 예시를 살펴보면 쉽게 이해가 됩니다.6800원이라는 금액을 최소한의 동전을 사용해서 나타낸다면 500원*13개, 100원*3개로 총 16개 됩니다.금액이 큰 것부터 최대한 많이 사용하고, 다음 큰 동전을 최대한 많이 사용하는것을 반복하면 됩니다.매번 뒤의 동전은 상관없이 최대한 많이 바꾼다는 것입니다.즉, '현재 내릴 수 있는 최선의 선택에만 집중한다.'가 그리디 알고리즘의 핵심 전략입니다. 그렇다면 이 방식이 항상 최고의 결과를 보장할까? 결론은 항상 보장하지 못합니다.마시멜로 이야기를 예로들면, 1시간뒤.. 2025. 4. 11.