인프런 커뮤니티 질문&답변
안녕하세요. 큰돌님 질문있습니다.
작성
·
268
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점은 제게 큰 힘이 됩니다. :)
감사합니다.
강사 큰돌 올림.






