강의

멘토링

커뮤니티

Inflearn Community Q&A

namul's profile image
namul

asked

10-Week C++ Coding Test | Algorithm Coding Test

6-B

안녕하세요. 큰돌님 질문있습니다.

Written on

·

270

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는 다르지 않나요?? 코드가 궁금해서 질문드립니다!

c++코딩-테스트

Answer 1

0

kundol님의 프로필 이미지
kundol
Instructor

안녕하세요 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점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


namul's profile image
namul

asked

Ask a question