728x90
메모이제이션은 동적 프로그래밍 기법의 일환으로,
이전에 계산된 결과를 저장해두고 필요할때 재사용해 중복 계산을 피하는 최적화 방법이다.
예로, 재귀적으로 피보나치의 수를 구할때 같은값을 여러번 계산하는 것을 메모이제이션으로 방지할수 있다.
기본 재귀함수의 경우 어떠한값이 필요할때 비효율적인 중복되는 계산을 여러번 처리해야한다.
메모이제이션 기법을 사용함으로써 한번 계산된결과를 저장해둔 뒤에
똑같은 계산결과가 필요할때 계산과정을 거치지 않고 필요한 값을 바로 불러오는 방법이다.
이처럼 눈에 보이는 장점과 단점이 있는데,
장점이라면 피보나치의 수처럼 계산 비용이 높은 경우 프로그래밍의 성능을 개선시킬수 있다는점
단점이라면 추가적인 메모리가 필요한점이다.
사용해야하는경우는 비용과 이익을 고려해봐야 하겠지만
보통 이전결과를 재활용할수 있을것 같을때 유용하다.
미흡한부분이나 개설될수 있는부분이 있다면 답글남겨주세요
'알고리즘 > 전략' 카테고리의 다른 글
Dynamic Programming 동적 계획법 (0) | 2024.03.07 |
---|---|
재귀호출 Recursive Call (3) | 2024.03.05 |
그리디 (Greed) 알고리즘 (0) | 2024.03.03 |