알고리즘/programmers

[Programmers] 리코쳇 로봇

꾸준함. 2023. 7. 23. 23:32

문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/169199

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

우선순위 큐를 이용한 BFS 문제였습니다.

 

알고리즘은 아래와 같습니다.

1. 이동한 횟수가 적을수록 우선순위가 큰 우선순위 큐에 로봇의 시작점 좌표와 이동한 횟수인 0을 넣어줍니다.

2. 우선순위 큐가 빌 때까지 혹은 목표점에 도달할 때까지 상하좌우 방향으로 부딪힐 때까지 이동시키며 시뮬레이션을 돌립니다.

2.1 목표점에 도달했다면 이동한 횟수를 반환합니다.

3. 2번 과정에서 프로그램이 종료되지 않을 경우 목표점에 도달할 수 없음을 의미하므로 -1을 반환합니다.

 

 

개발환경: Programmers IDE

지적, 조언, 질문 환영합니다! 질문 남겨주세요~

반응형