startup   1년 전

원래

// 남는인원 부감독관으로 채우기

while(testerNum[idx] > 0)
{
     testerNum[idx] = testerNum[idx] - subViewer;
     result++;
}


이런식으로 했다가 62%정도에서 시간초과가 떠서 

// 남는인원 부감독관으로 채우기
result = result + (testerNum[idx] / subViewer);
if(testerNum[idx] % subViewer > 0) result++;


이렇게 바꿨더니 바로 틀려버리네요...
일단 예제의 답은 다 맞는데 뭐가 문제인지 잘 모르겠습니다... ㅠㅠ

etaehyun4   1년 전

총감독관이 감시 가능한 수가 엄청 크고, 응시자 수가 작으면 잘못된 값을 출력할 듯 합니다.


처음 시도하셨던게 맞는 방법인데 while문을 안쓰고 할 수 있는 방법이 있으니 그걸 생각해보세요

startup   1년 전


@etaehyun4 님이 말씀하신 while문을 안쓰고 할 수 있는 방법이 제가 2번째로 한 방법아닌가요..? 


총감독관이 감시 가능한 수가 크고, 응시자 수가 작은 경우 잘못된 값을 출력하는걸 수정했더니 

62%의 시간초과는 지나가는데 63%쯤에서 틀렸습니다가.... 뜨네요 ㅎㅎㅎㅎㅎ


멘붕... @[email protected]

etaehyun4   1년 전

각 강의실에는 적어도 1명의 감독관이 필요하죠?

startup   1년 전

@etaehyun4

각 강의실에 총감독관이 항상 1명씩 존재하므로 각 시험장 마다 result++를 해주고,

총감독관이 감시할 수 있는 응시자보다 시험장의 응시자 수가 많은 경우 필요한 부감독관의 수를 채워 넣었습니다.

따라서 각 강의실에는 적어도 1명의 감독관(총감독관)이 들어가도록 코딩했는데 63%에서 틀립니다 ㅠㅠ


63%의 테스트케이스... 정말 궁금하군요 ㅇ_ㅇ


etaehyun4   1년 전

답의 범위가 최대 몇인지 확인해보시기 바랍니다

startup   1년 전

@etaehyun4 

..... 한방 먹었네요....;; 감사합니다!

johnbae57   1년 전

startup

저도 63%에서 에러가나는데
이유가 뭔지 알수있을까요?

startup   1년 전

@johnbae57

주어진 조건에서 부감독관의 최대값을 구해보면 알 수 있습니다.

아마 결과값을 int형으로 출력하고 계신게 아닐까 싶네요

댓글을 작성하려면 로그인해야 합니다.