tlaxh000   2년 전

테케랑 반례 모두 맞았는데 시작하자마자 틀렸다고 해서 자세한 설명과 함꼐 질문을 드리고자 합니다.

주석을 모두 달았지만 상어가 이동하는 데 쓰이는 Up Down Right Left 에 관한 설명이 주석으로는 부족한 것 같아 추가로 설명드립니다.

Up & Down 의 경우 (R-1) * 2 만큼 cycle을 갖게 됩니다.

아래의 예시를 통해 보면 Down, R = 8 이라고 가정하겠습니다.

Index는 이동한 거리라고 한다면 location은 이동 후 해당 위치가 됩니다.

Down의 경우 시작위치를 1로 설정하고 index=1 이라면 한 칸 내려가 value는 2가 됩니다. 이런식으로 진행하다가 index = 7이라면 R 까지 이동했고 그 후는 진행 방향을 반대로 진행합니다.

Index

1      

2      

3      4      

5      

6      7      8      9      10     11     12     13     14     

Location(Value)

2      3      

4     

5      6      7      8      

7      

6      

5      

4      3      2      1      

다시 1로 돌아올 때까지 진행하고 나면 이후는 반복됩니다.

위의 배열을 두 개를 이어 붙여서 사용합니다.

위 배열은 시작 위치가 1로 고정이지만 배열을 두 개 붙여 2 Cycle을 만들게 되면 시작 위치만큼 shift하게 된다면 모든 위치에서의 이동거리에 따른 location 을 사용할 수 있게 됩니다.

Up, Right, Left도 위와 같은 방식으로 구현했습니다.

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