백준 - 영재의 산책(19953번)
t 가 10억이므로 매 초마다 이동해주면 시간 초과가 날 수 밖에 없다.
(v * m) % 10 의 규칙을 활용해야 한다.
여러 수를 대입해 본 결과 v, m 이 어떤 조합이던 간에 결과 값은 4개의 패턴만을 가진다.
v = 1, m = 2 일 때 -> 2, 4, 8, 6
v = 123, m = 127 일 때 -> 1, 7, 9, 3
즉, 맨 처음 북쪽으로의 이동을 제외하면 다음 이동부터는 동, 서, 남, 북 네 방향으로의 이동 거리가 일정하다는 뜻이다.
처음 북쪽으로 이동한 뒤 그 지점을 시작점으로 잡고, 동, 서, 남, 북으로 각각 몇 번 갈 수 있는지 구한 뒤
이동 거리만큼 계산해주면 된다.
댓글
댓글 쓰기