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

조현성님의 프로필 이미지
조현성

작성한 질문수

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

6-J

6-J 풀이과정

해결된 질문

작성

·

253

·

수정됨

0

덩어리=최소공배수? 이고

ret = 35라는건 최소공배수가 7일때 7*5해서 최소공배수의 배수이고

ret-1/a[i] 하는건 28 만드는 과정인건 알겠는데

8:40 보면 ret%a[i]==0 있는 for문이 설명이 없고 잘 이해도 안가서 그러는 데 for(;;){if(ret%a[i]==0) if(temp==n))~ 이 부분 코드 설명 해 주실 수 있으신가요?

공유 소스 보기 (acmicpc.net)

답변 1

0

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

안녕하세요 현성님ㅎㅎ

    for(ll i = 0; i < m; i++){
        if(ret % a[i] == 0)temp++; 
        if(temp == n){
            cout << i + 1 << '\n';
            return 0; 
        }
    } 

아이들이 3명이 남았고 놀이기구를 다 태운 상태입니다. m번까지.

예를 들어

1번이 2분짜리다. 6분이 흐른 상태인거죠.

물론

2번이 4분짜리고, 6분이 흐른 상태일 수도 있습니다.

적절히 흐른 분을 결정하고 그 분을 기반으로 어느정도 놀이기구에 다 태운 상태인 것입니다.

 

그리고 나서 다시 m번의 놀이기구 중 탈 수 있는 놀이기구를 체크하는 부분입니다.

여기서 만약 6분이라면 1번이 2분짜리면, 1번을 태울 수 있는 것이죠.

그렇게 해서 태우다가 마지막에 태우는 아이를 출력하는 부분입니다.

 

감사합니다.

조현성님의 프로필 이미지
조현성

작성한 질문수

질문하기