[프로그래머스] 리코쳇 로봇 - Java(자바)
·
자바/코딩테스트
문제 이해리코쳇 로봇이라는 보드게임이 있습니다.게임판에는 "." - 빈공간, "R" - 로봇, "D" - 장애물, "G" - 목표지점 으로 구성되어있고 "R", "G는 무조건 하나씩 존재합니다.로봇이 목표지점으로 갈 수 있는 최소의 경로를 찾아야합니다.로봇은 상하좌우로 움직일수 있으며 한번 움직일때 미끄러져서 맨끝까지 가거나 장애물을 만나기전까지 멈추지 않습니다.로봇이 목표지점으로 갈 수 없다면 -1로 return 해주세요로봇이 상하좌우 움직일때마다 맨끝까지 or 장애물에 멈추게 move 함수를 만든다.0 - 상 , 1 - 하, 2 - 좌, 3 - 우 로 판단하여 만들었다.움직일 때마다 이동 count + 1 하고 방문했던적이 없다면 큐에 집어 넣고 아니라면 방향을 바꿔가며 이동한다.이동한 좌표가 "G"..
[프로그래머스] 방문 길이 - Java(자바)
·
자바/코딩테스트
문제 이해 좌표문제로 좌표 범위는 -5 ~ 5까지로 해당 범위를 나가면 안된다. 문자열은 상하좌우를 뜻하는 LRUD가 있다. 문제의 핵심은 좌표범위를 벗어나지 않고 처음가는 길인곳의 길이를 구하는것이다. A -> B == B -> A 두개의 길은 같은길로 처리한다. 리스트에 좌표를 움직이기 전 좌표 + 움직인 후 좌표, 움직인 후 좌표 + 움직이기 전 좌표 로 두가지 경우를 둘다 넣어 문자열로 담아놨다. indexOf를 사용하여 리스트에 존재 하지 않으면 처음 가는길로 간주했다. import java.util.*; class Solution { public int solution(String dirs) { List visit = new ArrayList(); int answer = 0; int[] poi..
대전집주인
'상하좌우' 태그의 글 목록