Algorithms/BOJ
[BOJ]14503:로봇 청소기
수연초이
2021. 3. 4. 03:15
BFS를 사용하여 문제에서 하라는 대로 구현하였다.
처음 접근할때는 dfs로 풀어나가려고 하였지만 요즘 너무 dfs만 사용하는 느낌이라 bfs로 풀었다.
로봇 방향이 0, 1, 2, 3 순으로 북, 동, 남, 서인데 자신이 해당하는 방향에서 왼쪽으로 회전하면서 탐색하면 (북 방향의 경우) 서, 남, 동, 북 으로 반대가 되어서 관계식을 생각할때 집중이 안돼서 혼란스러웠다...미쳐버릴거 같았다!!!
로봇 기준 방향을 인덱스로 하여 회전하였을때의 델타식을 아래의 배열을 사용하여 만들었다.
static int[][] dir = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
(0이 북 방향이므로 dir의 0번째 인덱스는 북방향으로 좌표를 이동함)
github.com/SuyeonChoi/Algorithms/blob/master/BaekJoon/Java/Simulation/p14503.java
SuyeonChoi/Algorithms
Personal Algorithm Study::solving BOJ, Programmers, and SW Expert Academy - SuyeonChoi/Algorithms
github.com
8달 전에 Python으로 풀었던데 더 잘풀었던거 같아서 살짝 자괴감이...;;