Problem : ACM Craft
유형 : 위상정렬, DP
문제 해석
- N번쨰 건물을 짓는 최소 시간을 구하라.
문제 재해석
- 건물을 못 짓는 경우는 없다.
- 앞 테크의 건물을
전부
지어야 뒤 테크의 전물을 지을 수 있다.
해결 전략
- 순서를 유지한 정렬이 필요하다
위상 정렬
로 해결한다. - 최소
건설 시간
을 찾아야 한다.DP
로 해결한다.
설계, 구현
- 각 건물당 짓는 비용을 저장해둔다.
- 테크가 필요 없는 건물부터 건물을 짓기 시작한다.
- 새로운 건물을 지을 때, 현재 테크까지 올린 비용 + 새로운 건물 비용을 구한다.
- 새로운 방법으로 짓는 건물이 더 쌀 경우 해당 방법으로 교체한다.
디버깅
- 문제를 잘못 읽었었다.
- 앞 테크의 건물을
모두
지어야 뒷 테크의 건물을 지을 수 있다. - 하지만, 한 개만 지어도 지을 수 있는 것으로 잘못 해석했었다.
코드
1 |
|
피드백
- 항상 문제를 똑바로 읽자.