작성
·
274
0
강사님께서 보여주신 코드를 보면,
main함수속의 while문에서,
if(Count(mid)<=m) {
res = mid;
rt = mid - 1;
}
else
lt = mid + 1;
이렇게 코드를 구현하셨는데요,
제가 여기서 궁금한 점은,
Count(mid)<=m 조건을 만족할때마다, res = mid; 이렇게 DVD의 용량 값을 업데이트를 해주고 있는데요, 저는
Count(mid)==m 이렇게 작을경우는 말고, 오직 같을때만 업데이트를 해줘야한다고 생각하는데, 왜 강사님께서는
사용자가 m개의 DVD를 사용하고 싶다고 했으면, 딱 m개일때만 DVD의 용량을 업데이트를 하지 않고, m보다 더 작은 개수가 나왔을때도, res = mid; 이렇게 DVD의 크기를 업데이트 해주는지 궁금합니다!
답변해주시면 감사하겠습니다!
답변 1
0
테스트케이스 중에 꼭 M개를 사용하지 않는 경우가 있어서 그런 것 같아요!
SEO님께서 말씀하신대로 count(mid)==m 같은 경우로만 한다면 in1 케이스가 wrong_answer이 납니다.
in1 은
n = 5, m = 4
1 1 1 1 1 이어서 정답이 2인데요, (1) (1) (1) (1 1) 이렇게 4개를 할 수도 있지만
Count함수 쓰면 (1 1)(1 1) (1) 이렇게 3을 리턴할 것이라
이것과 비슷한 경우를 대비하기 위해서 그렇게 된 것 같아요~
친절하고 자세한 답변 감사합니다!
만약에 그러면, m=4라고 지정을 해줬는데,
Count함수결과 계속 4를 만족하는 결과가 하나도 나오지 않을 경우에는 어떻게되는건가요??