본문 바로가기

Dynamic Programming

(2)
[Algorithm/Swift] 프로그래머스(Lv.3) - 스티커 모으기(2) 안녕하세요 제인입니다! 오늘은 문제 풀이를 통해 dp 유형 풀이 과정을 정리해보도록 하겠습니다. 해당 문제를 풀면서 대표적인 dp 유형이라고 생각이 들어 정리해두면 좋을 것 같아서 가져왔습니다! 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 처음 접근 저는 처음에 투포인터로 접근을 했었는데요,, 다른 풀이를 참고해서 dp로 해결한 후 생각해보니까 dp로 풀 수 밖에 없는 문제라는 생각이 드는 것 같습니다..! 처음에 투포인터로 접근한 이유는 start, end 포인터 모두 0에 두고 시작해서 처음으로 떼는 스티커의 인덱스에 start..
[Algorithm/Swift] 동적 계획법(Dynamic Programming) 안녕하세요 제인입니다! 오늘은 알고리즘 개념 중 동적 계획법(Dynamic Programming)에 대해 정리해보려고 합니다. 동적 계획법이 무엇인지 정리해보고, 동적 계획법의 대표적인 예제인 문제를 통해 적용까지 해보도록 할게요! 동적 계획법(Dynamic Programming, DP) 다이나믹 프로그래밍(줄여서 DP)라고도 불리는 동적 계획법은 큰 문제를 작게 나누고, 같은 문제라면 한 번씩만 풀어 문제를 효율적으로 해결하는 알고리즘 기법입니다. 동적 계획법에서는 메모이제이션(Memoization) 기법이 핵심이라고 할 수 있는데요! 메모이제이션 기법이란, 한 번 구한 결과를 메모리 공간에 저장해두고 같은 식을 다시 호출해 저장한 결과를 그대로 가져오는 기법을 의미합니다. 메모이제이션은 값을 저장하는..