목록2023/12/26 (2)
개발하는 리프터 꽃게맨입니다.
📕 개요그리디 알고리즘은 '욕심쟁이 알고리즘'이라는 별칭을 가지고 있습니다. 이는 '지금 이 순간 최적의 답을 선택하여, 전체 문제를 해결하자!'라는 아이디어로부터 출발합니다. 간단한 예시를 들어보겠습니다. 서울에서 부산으로 가고자 하는데, 무조건 대전, 대구를 경유해서 가야 한다고 가정해 보겠습니다. 어떻게 해야 가장 빠르게 부산에 도착할 수 있을까요? 서울 ~ 대전까지 가장 빠르게 도달하는 시간 + 대전 ~ 대구까지 가장 빠르게 도달하는 시간 + 대구 ~ 부산까지 가장 빠르게 도달하는 시간 = 서울 ~ 부산까지 가장 빠르게 도달하는 시간 일 겁니다. 그때그때 최적의 답을 선택하고, 그것을 모아서 전체 문제에 대한 해답을 찾고자 합니다. 그러나, 그리디 알고리즘이 항상 최적의 결과를 도출하는 것은 아닙..
📕 개요 RAII는 C++ 에서 메모리 누수를 막기위해 탄생한 '디자인 패턴'입니다. Resource Acquisition Is Initialization 줄여서 RAII라고 부릅니다. '자원의 할당은 객체 초기화시, 자원의 반환은 객체 소멸시한다.' 라는 원칙이라고 이해하시면 되겠습니다. 자원의 할당은 생성자에서 보장해주고 자원의 반환은 소멸자에서 보장해주는 것이죠. C++에서 '힙(heap)' 메모리를 사용하고자 할 때, 우리는 직접 자원을 할당하고 직접 해제해야 합니다. //힙 메모리를 할당 int* number = new int; //number 포인터가 가리키는 힙 메모리 할당 해제 delete number; 그런데 조금 큰 프로그램을 개발하는 과정에서 필히 발생하는 것이 '메모리 누수' 문제죠..