pinch3773   7달 전

  제가 문제를 접근한 방식에 오류가 있을 것인지 궁금해서 질문 드립니다.

우선 저는 점프를 하는 횟수를 하나씩 세면서 답을 갱신했습니다. 만약 점프롤 한 거리가 (0,0) (x,y) 사이의 선분의 길이보다 작을 경우에는 점프를 선분을 따라서 일직선으로 계속 하고, 나머지 거리를 걷는 경우가 가장 짧다고 생각했습니다. 만약 일직선으로 부터 벗어날 경우에는 걷는 시간이 무조건 더 길게 나올 수 밖에 없으니까요. 

  그리고 점프하는 거리가 (0,0) (x,y)사이의 선분의 길이를 초과 한다고 생각 한다면, 이 경우는 두가지로 나누었습니다. 우선 점프한 횟수가 1보다 큰 경우에는 n번일 경우, n개의 점프 거리를 쭉 이어서 (일직선이 아니더라도) 다각형 형태의 이동 경로가 나오게 했습니다. 일직선으로 하면 (0,0)으로 되돌아 오는데 시간이 추가적으로 발생하는 경우가 생기기 때문에 그랬습니다. 

  하지만 만약 점프 횟수가 1이면서 (0,0) (x,y)사이의 선분의 길이를 초과 하면, 점프를 이어서 다각형 형태로 하는 것이 불가능 하기 때문에 2회로 늘려서 가도록 하던가(이동 경로와 (0,0) (x,y) 선분을 이으면 이등분 삼각형이 나오게) 아니면 1번을 (0,0) (x,y)선분의 방향을 따라서 간 이후 곧 바로 (0,0)으로 역 방향으로 걸어서 오는 경우 두가지를 생각했습니다. 

  이 모든 경우를 고려 해서 답을 낸 것이 아래와 같은 코드인데 제가 문제 접근을 잘못한 것일까요?

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