목적지를 초과한 다음 뒤로 후퇴하는 게 항상 비효율적인 건 아니죠.
말씀하신 대로 반례가 존재하니까요.
(예: 100에서 199까지 가는 경우 100->200->199가 100->99->198->199보다 빠름)
이것 말고도 얼마든지 더 있겠죠.
결국 출발지와 목적지 값에 따라
넘어가는 게 이득일 수도, 그러지 않는 게 이득일 수도 있는 거고
"목적지의 값을 초과해서 -1 을 해야 최솟값이 보장되는 이유나 원리가 있을까요?"라고 물으시면
"그런 케이스가 존재하니까요"라고 대답할 수밖에 없을 것 같습니다.
superego0706 1년 전
이전에 18,26,39줄 코드에서 0 < cur_... <= dest + 1 부분의 dest + 1을 dest로 적어서 틀린적이 있습니다
목적지보다 작은 값에서 2배를 하는게 목적지를 초과해서 빼는것보다 더 효율적이라는 말을 기억해서 이렇게 짰었습니다.
일단 목적지 + 1 까지 2배를 하고 -1 하는것이 최솟값이 되는 반례를 보고 단순히 dest + 1로 바꿨더니 정답처리가 되었는데 이유를 모르겠네요
목적지의 값을 초과해서 -1 을 해야 최솟값이 보장되는 이유나 원리가 있을까요?