문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/250134
재귀함수와 BFS 알고리즘을 통해 풀 수 있는 문제였습니다.
알고리즘은 아래와 같습니다.
1. maze 벡터를 순회하며 빨간색 수레와 파란색 수레가 위치한 좌표를 구하고 해당 좌표를 각각 빨간색과 파란색 수레가 위치했었다고 visited 배열에 표시를 합니다.
2. 각 수레는 상하좌우로 움직일 수도 있고 가만히 서있을 수도 있습니다.
2.1 각 턴마다 두 수레 모두 움직이지 않는 경우의 수를 제외한 24개 경우의 수를 시뮬레이션 돌리고 문제에서 주어진 조건에 성립할 경우 업데이트된 수레의 좌표와 증가된 턴을 매개변수로 넘겨 재귀함수를 다시 호출합니다.
2.2 두 수레 모두 각자의 도착 칸에 도착할 경우 answer를 업데이트해줍니다.
3. 2번에서 구한 answer를 반환하되 answer가 초기값일 경우 불가능한 케이스이므로 0을 반환해 줍니다.
개발환경: Programmers IDE
지적, 조언, 질문 환영합니다! 질문 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] PCCE 기출문제 모음 (0) | 2023.12.18 |
---|---|
[Programmers] 등대 (0) | 2023.12.13 |
[PCCP 기출문제] 2번 / 석유 시추 (0) | 2023.11.28 |
[PCCP 기출문제] 1번 / 붕대 감기 (0) | 2023.11.27 |
[Programmers] 카운트 다운 (0) | 2023.11.16 |