본문 바로가기

알고리즘22

탐욕적 기법(Greedy Algorithm) 탐욕적 기법(Greedy Algorithm)은 이름 그대로 항상 눈앞의 가장 큰 이익만을 좇는 방법입니다. 어떤 경우에 사용할까? 그리디 알고리즘으로 최적의 해를 구할 수 있는 문제는 많지는 않다. 하지만 이런 방법이 통하는 문제들이 분명 존재하고 전략을 파악했을 때 간단히 해결이 가능한 문제가 많기 때문에 대회나 코테에 자주 나온다. 문제를 해결하는 과정에서 한 가지의 전략을 선택을 하였을 때 그 이후에도 원래 문제와 동일한 성질이 성립하여야 한다. 성질이 동일하게 보존되어야 썼던 전략을 계속 취해도 답을 구할 수 있기 때문이다. 보통 풀이가 가장 큰, 긴, 빠른~ 것부터 해결해야 하는 경우가 많은 편이다 보니 정렬이 필요할 때가 많다. 예시 그리디 알고리즘의 대표적인 예시로 동전 문제가 있다. 백준 .. 2022. 3. 10.
시간 복잡도 & 빅오표기법 친구를 만나기 위해 약속 장소를 찾아가는 상황을 생각해보자. 나머지 비용은 같다는 가정하에 목적지까지 1시간이 걸리는 경로와 30분이 걸리는 경로가 있다면 30분이 걸리는 경로를 선택할 것이다. 우리에게 시간은 소중하기에 효율적으로 사용하기 위한 노력을 의식적으로 하고 있는 것이다.컴퓨터 프로그래밍도 마찬가지다. 어떤 경로를 통해 약속장소로 가는 과정을 컴퓨터 프로그래밍에선 알고리즘이라고 말한다. 이때 도출할수 있는 여러 과정 중에 가장 빠르게 수행할 수 있는 알고리즘을 선택한다면 더 좋은 프로그램을 만들 수 있을 것이다. 알고리즘(Algorithm) 어떠한 문제를 해결하기 위한 여러 동작들의 모임 [알고리즘에 관한 더 자세한 설명[위키피디아\]]: https://ko.wikipedia.org/wiki/.. 2022. 3. 9.