![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAYMWe%2FbtsyXXOW4No%2FVJ0dfPbIhqJqYYNh9k4Pm0%2Fimg.png)
1005. ACM Craft
Algorithm/백준 알고리즘
2023. 10. 22. 09:57
아이디어 어떤 건물을 짓기 위해서는 선행되어야 하는 건물들을 다 짓고 난 후에나 이를 지을 수 있다. 그래서 건물 W 를 건설 완료하는데 드는 최소 시간을 dp[W] 로 정의한다면 dp[W] = max(dp[선행 건물1], dp[선행 건물2], ...) + Dw 이 때 선행 건물의 번호가 W 보다 작다는 보장이 없으므로 재귀함수를 통해서 구현하되 한 번 구한 값은 dp 배열에서 가져오는 방식을 사용하면 된다 * 문제에서 Dw 의 범위가 0 부터 시작이기 때문에 건설 완료 시간이 0 인 케이스도 존재가 가능하다. 따라서 dp 배열에 대한 초기화는 -1로 해준다 풀이코드 import java.io.BufferedReader; import java.io.IOException; import java.io.Inp..