초이로그

[BOJ]14503:로봇 청소기 본문

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으로 풀었던데 더 잘풀었던거 같아서 살짝 자괴감이...;;

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

[BOJ]16562:친구비  (0) 2021.03.19
[BOJ]1406:에디터  (0) 2021.03.09
[BOJ]좌표 정렬하기1,2로 알아보는 Arrays.sort와 람다식  (0) 2021.01.27
[BOJ]1920:수 찾기  (0) 2020.11.05
[BOJ]11653:소인수분해  (0) 2020.10.24