Automated Telling Machine (ATM) replenishment is a wellknown problem in banking industry. Banks aim to improve customer satisfaction by reducing the number of out-of-cash ATMs and duration of out-of-cash status. On the other hand, they want to reduce the cost of cash replenishment, also. The problem conventionally has two components: forecasting ATM cash withdrawals, and then cash replenishment optimization on the basis of the forecast. In this work, for the first component, it is assumed that reliable forecasts are already obtained for the amount of cash needed in ATMs. We focus on the ATM cash replenishment component, and propose a dynamic programming based solution. Experiments conducted on real data reveal that the solutions of the baseline approaches have high cost, and the proposed algorithm can find optimized solutions under the given forecasts.