티스토리 뷰

BOJ/Etc

BOJ/10158_개미

beecomci 2017. 2. 10. 10:50

[문제]

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


[처음 생각]

삼성 SDS SW 시험을 볼 때 1번 지네문제와 베이스가 비슷하다는 생각이 들었다. 그때도 지네가 map을 돌아다니면서 (진행 방향이 이 문제처럼 정해져있었는지는 생각이 안남) 벽에 부딪히면 꼬리가 길어지는 형태인데 그때 벽에 부딪히는 예외처리를 하지 못해서 모든 테스트케이스를 통과하지 못했다.

그럼에도 이 문제를 보고 처음엔 2차원 배열로 map을 거꾸로 뒤집어서(좌표계가 아닌 배열로 나타내야 하니까) 진행방향의 모든 예외처리를 하려고 했다...


[풀이]

처음 진행방향이 오른쪽 위쪽으로 정해져있기 때문에, map의 좌우 벽면과 상하 벽면에 부딪힐 때 경우를 따로 생각한다. 

좌표의 flag 역할로 dx, dy를 정의한다. 

- 좌우 벽면일 경우

좌표의 y값은 1이 증가하고 x값은 이전 flag인 dx의 반대값만큼 증가한다.

- 상하 벽면일 경우

좌표의 x값은 1이 증가하고 y값은 이전 flag인 dy의 반대값만큼 증가한다.


--> 다시 봐야할 문제!!!


[참고]

https://github.com/ssang1105/Algorithms/blob/master/10158_%EA%B0%9C%EB%AF%B8(%EA%B9%94%EB%81%94%EB%B0%A9%EB%B2%95).cpp


[Code]

https://github.com/dbwls94/gomulsang/tree/youjin/BOJ/src/boj_10158

'BOJ > Etc' 카테고리의 다른 글

BOJ/1654_랜선 자르기  (0) 2017.02.14
BOJ/1992_쿼드트리  (0) 2017.02.10
BOJ/10156_과자  (0) 2017.02.10
BOJ/11403_경로 찾기  (0) 2017.02.10
BOJ/10159_저울  (0) 2017.02.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
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
글 보관함