ans 값에 따라 통과되는 케이스가 다른 이유는 잘 찾지 못했습니다 ㅜㅜ
ans=0 으로 하는 것이 맞습니다.
일단 코드를 수정하다 참고한 반례는
2
2 15
1 30
answer = 30
&
5
5 10
1 1
1 1
1 1
1 1
answer = 10
입니다.
dp[i]의 모든 값을 0이라 생각하고 _max의 값을 초기화해줬었는데 수정된 코드는 다음과 같습니다.
i일의 예상시간이 n+1을 넘어가는 상황, 즉 i+t[i]>n+1인 경우 를 제외하고는
dp[i]를 p[i]로 초기화 한 후 (변수 _max를 사용할 필요 없이) dp[i]의 값을 반복문 안에서 초기화 해야했습니다.
n=5인 경우,
i=1일 때 t[1] = 5 p[1]=10
i=2,3,4,5일 때 t[i]=1 p[i]=1
이라 하면
dp[1]이 ans가 되는데 ans를 구하는 과정이 for문 안에 있어 ans의 값이 갱신이 안됐습니다.
따라서 코드를 i=2부터가 아닌 i=1부터 for문을 돌려 i=1인 경우도 ans의 값을 생각할 수 있도록 코드를 수정했습니다.
쓰다보니 난잡해지네요.. 화이팅입니다.
kgch0301 1년 전
게시판의 모든 반례가 다 맞게 출력이 되는데 자꾸 틀리네요.. 반례 좀 알려주실 수 있나요..
또 ans를 0으로 초기화하면 56퍼까지 통과되지만 ans를 dp[i]로 초기화하면 91퍼까지 가더라구요.. 혹시 그 이유도 알 수 있을까요?
제 생각엔 ans = 0으로 하는게 더 정확한 풀이인 것 같아서..