본문 바로가기

Solutions/Mr.K's Solution

PKU 2243. Knight Moves. [판정:AC]


The Triangle을 풀기 이전에 손코딩으로 풀었던 문제입니다 -_-;

처음에는 시작점에서 n번만에 갈 수 있는 모든 위치를 표시하고

거리마다 어떤 규칙이 있는지 파악하려고 했었습니다만,
( 여기에서 거리란, 시작점에서 가로나 세로로만 움직여서 도착점까지 갈 때 필요한 움직임의 수를 의미합니다 )
( 즉 a1에서 c2까지의 거리는 3이고, b4에서 h7까지의 거리는 9라고 간주합니다 )

일정 거리까지만 규칙이 보이고 그 이후에는 규칙이 잘 보이지 않았습니다



그래서 벡터를 사용하여 문제를 풀기로 했습니다
( 자료구조적 벡터 말고 수학적 벡터 -_-; )

가만 보면,
시작점으로부터 거리가 짝수인 위치로는 짝수번만에 이동이 가능하고
시작점으로부터 거리가 홀수인 위치로는 홀수번반에 이동이 가능했습니다

(그림1)

(그림2)

그래서
거리가 짝수인 점들에 대해서 규칙을 찾고
거리가 홀수인 점들에 대해서 규칙을 찾기로 했습니다

그 중, 거리가 짝수인 점들은 가로로 짝수, 세로로 짝수만큼 이동해야 하는 점들과
가로로 홀수, 세로로 홀수만큼 이동해야 하는 점들을 구분했습니다


그래놓고나서 보니
몇가지 벡터의 합에 의해 모든 위치로의 이동을 표현할 수 있게 되었습니다 -_-;



위와 같은 과정을 통해 손코딩을 한 결과가 아래와 같습니다



전 롱코딩이 체질인가봐요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

'Solutions > Mr.K's Solution' 카테고리의 다른 글

PKU 1089. Intervals. [판정:WA]  (6) 2009.05.21
PKU 2656. Unhappy Jinjin. [판정:AC]  (0) 2009.05.16
PKU 1163. The Triangle. [판정:AC]  (2) 2009.05.15
PKU 2840. Big Clock. [판정:AC]  (3) 2009.05.11
PKU 2039. To and Fro. [판정:AC]  (0) 2009.03.26