스타트 택시

생각한 부분

  1. BFS① : 현재 위치-> 최단거리 승객으로 이동(탐색)

  2. BFS② : 승객 현재 위치 -> 최단거리로 승객 목적지 위치로 이동

=>BFS①에서는 최단거리 위치의 승객들을 찾아서 컬렉션에 저장한다! =>BFS②에서 컬렉션에 저장된 승객들을 최단거리 목적지까지 이동하는 연산 수행한다!

전역 변수

distance: 거리 oil : 현재 연료 양 queue : BFS 탐색 possilbe : 최단 거리에 있는 승객 저장

BFS① : 최단거리 승객 탐색. 한번에 한명의 승객만 태우기 때문에 possible객체가 양수가 되면 바로 종료한다! == 1이 아닌 이유는 최단거리 2에 승객이 n명 있을 경우 크기는 1이 아니라 n이 되기 때문! BFS를 위해 방문 체크 배열, 큐 초기화 ,distance 초기화:승객까지의 거리 카운팅, 현재 위치 true로 마킹&큐에 삽입 => BFS가 리턴, 종료되고 나면 distance와 oil값 비교해서 이동 가능한지 판단 가능! => 탐색 시작하려는 현재 위치가 승객의 위치와 동일하면 승객 찾은 것이므로 바로 리턴&종료! BFS② : 목적지까지 최단거리 탐색. 목적지 도착한 경우, 현재 택시위치로 갱신!(아기상어와 똑같음) BFS를 위해 방문 체크 배열, 큐 초기화, distance 초기화:목적지까지의 거리 카운팅, 현재 위치 true로 마킹&큐에 삽입&Map 값에 0으로 마킹⭐️:이동시킨 승객은 배열에 0으로 마킹함으로써 지운다! => 마찬가지로 목적지까지 거리 distance와 oil 배교해서 이동 가능한지 판단 가능!

Last updated