알고리즘 문제 풀다 보면 어떤 건 그리디로 풀리고 어떤 건 DP로 풀어야 되는데 이걸 어떻게 구분하는지 매번 헷갈려요. 제일 답답한 게 그리디로 냅다 풀었는데 반례 나와서 틀리는 경우예요.


대표적인 게 동전 문제잖아요. 500, 100, 50, 10원으로 거스름돈 만들 때는 큰 거부터 그리디로 집으면 되는데, 동전이 예를 들어 1, 3, 4원 이렇게 있고 6원 만들라 하면 그리디로 4+1+1 해서 3개 나오는데 사실 3+3 하면 2개가 최적이더라고요.


이런 걸 보면 그리디는 상황 봐 가면서 써야 되는 것 같은데, 문제 딱 봤을 때 아 이건 그리디 되겠다 아니면 이건 DP 가야겠다 이런 감이 안 잡혀요.


여쭤보고 싶은 거,

1. 그리디가 되는 문제는 뭔가 공통된 특징이 있나요

2. 그리디로 풀었을 때 이게 맞는지 틀리는지 어떻게 확인해요? 매번 반례 찾아봐야 되나요

3. 애매하면 그냥 DP로 가는 게 안전한 건가요


연습으로 되는 건지 아니면 판단 기준이 따로 있는 건지 궁금합니다.