인프런 커뮤니티 질문&답변

이명운님의 프로필 이미지
이명운

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

5-V

5-V 문제 질문

해결된 질문

작성

·

229

0

안녕하세요 큰돌선생님 매번 좋은강의 감사합니다

해당문제 풀이에서 다른부분은 모두 이해 가는데,

make함수에서 if(interval == n) break;

부분이 왜 필요한지 잘 모르겠습니다.

어차피 for 루프가 끝나면 자동으로 종료되기때문에 필요없다고 생각하여 제출했는데 틀렸다고 나오네요 혹시 무엇때문에 필요한 것인가요?

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 명운님 ㅎㅎ

interval가 n일 때는 for문이 한번 작동해야 합니다.

n이라는 것은 피자한판 자체를 다 사용한다는 의미이기 때문입니다.

interval은 크기이죠?

void make(int n, int psum[], map<int, int> & mp){ 
    for(int interval = 1; interval <= n; interval++){

 

근데 여기서 BREAK;를 걸지 않으면 이부분의 FOR루프가 더 돌기 때문에

        for(int start = interval; start <= n + interval - 1; start++){

 

한판을 다 사용하는 경우의 수에는.

1번만 돌 수 있도록 BREAK;를 걸어주는 것입니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


이명운님의 프로필 이미지
이명운
질문자

아.. 좀만 더 생각해보면 알 수 있는거였군요

매번 이해하기 쉽게 답변해주시는것 너무 감사합니다!

이명운님의 프로필 이미지
이명운

작성한 질문수

질문하기