작성
·
225
0
bool check(int mid)
{
if (mx > mid)
return false;
int temp = mid;
int cnt = 0;
for (int i = 0; i < n; i++)
{
if (mid - a[i] < 0)
{
mid = temp;
cnt++;
}
mid -= a[i];
}
if (mid != temp)
cnt++;
return cnt <= m;
}
위와 같은 코드에서 for문을 계속 돌면서 mid -= a[i]를 해주는데 그 아래문장에서 if (mid != temp)를 검사해주는데 무조건 mid랑 temp는 다르지 않나요?? 코드가 궁금해서 질문드립니다!
답변 1
0
안녕하세요 1234님 ㅎㅎ
네 1234님 말씀이 맞습니다. 예리하신 지적이네요. ㅎㅎ
마지막 부분을 고려하기 위해서 그렇게 짠 건데요.
int cnt = 0;
for(int i = 0; i < n; i++){
if(mid - a[i] < 0){
mid = temp;
cnt++;
}
mid -= a[i];
}
cnt++;
이렇게 코드를 구축해도 맞습니다.
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.