티스토리 뷰

알고리즘/기초구현

백준 - 개미

빨간공 2016. 12. 27. 21:25


URL : https://www.acmicpc.net/problem/10158


[ 문제 푸는 방법 ]

처음엔 그림에서 처럼 개미가 경로를 따라가게 코드를 짰다. 경로를 한칸씩 따라가면 시간이 오래 걸리므로 부딪히는 바깥선을 계산했다.

그런데 더 좋은 방법이 생각났다.


개미의 X, Y좌표를 분리해서 보니 재미있는 현상이 보였다. 개미가 움직이는 X좌표만 따로 떼어서 보면 개미는 X축을 왔다갔다 왕복한다.

그래서 t초 후에 개미가 X축 위의 어디에 있을 지 생각하기 더 쉬워졌다.


( p + t ) / w값을 x라 하겠다. x의 의미는 개미가 p위치에서 t초동안 너비 w를 몇번 움직였는지 계산한 값이다. x값이 홀수이면, 개미는 x = w축에서 x = 0으로 가는 도중에 멈출 것이다. 반대로 x가 짝수이면, 개미는 x = 0축에서 x = w축으로 가는 도중에 멈출 것이다.


 

그러면, 개미가 어디서 멈출지 생각해모면, x가 홀수일때와 짝수일때를 나누어 생각하면 된다.

x가 홀수일때는  x = w축에서 ( p + t ) % w만큼 떨어진 위치에 있다. 계산식은 w - ( p + t ) % w이다.

x가 짝수일때는  x = 0축에서 ( p + t ) % w만큼 떨어진 위치에 있다. 계산식은 0 + ( p + t ) % w이다.


Y축은 X축과 같은 방식으로 하면 된다.


[ 코드 ]


'알고리즘 > 기초구현' 카테고리의 다른 글

백준_시그마  (0) 2016.09.16
백준_01타일  (0) 2016.09.08
백준_방번호  (0) 2016.09.08
codeground 개구리 뛰기  (0) 2016.08.25
codeground 프로그래밍 경진대회  (0) 2016.08.24
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함