wjm358   6년 전

문제는 일단 해결하였으나 최적화된 코드를 찾고자 구글링을 하던 도중에
정답자분 중에 이 코드를 쓰신분이 계셨는데요..
저 식이 대체 어케나오는지 이해가되지않습니다 ㅠㅠㅠ 어떻게 저식이 나오는건가요??


http://codersbrunch.blogspot.k... 에서 출처했습니다.

djm03178   6년 전

달팽이는 하루에 a미터를 올라가고, b미터를 미끄러지니, 하루에 총 a - b미터를 올라간다고 볼 수 있습니다.

이 여정이 끝나는 날에는 b미터 미끄러지는 부분이 없는 것이니, 결과적으로 v - b미터를 올라가는 것이 목표입니다.

그렇다면 a - b미터씩 쭉쭉 올라가서 v - b미터보다 작거나 같은 거리가 남은 날에 올라가면 끝이 납니다.

만일 (v - b)가 정확히 (a - b)로 나누어떨어지지 않는다면, 몫에 1을 더한 값이 정답이 됩니다.

그러나 (v - b)가 정확히 (a - b)로 나누어떨어진다면 하루를 더 계산할 필요가 없어집니다. 이를 감안해서 처음부터 v - b에 1을 더 빼고 나눈 뒤에, 무조건 1을 더하는 것으로 정답을 구할 수 있습니다.

wjm358   6년 전

답변 정말감사합니다!!

djm03178   6년 전

다시 보니 하나 셋째 줄에 잘못 적은 게 있어서 정정하겠습니다.

v - b미터보다 -> a - b미터보다

smashh   2년 전

(c-a-1)//(a-b) + 2

(c-a-1 + (a-b)) // (a-b) + 1

(c - b -1) // (a-b) + 1

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