19238번 - 스타트 택시
현재 구성은 1. 승객을 찾으러가는 BFS ,2. 승객을 태우고 목적지를 가기위한 BFS로 구성하였습니다.
변수는 dict 형태로 people[(위치)]=숫자, destination[사람숫자] = (목적지) , 로 구성하였습니다.
1. 승객을 찾으러가는 BFS
현재위치,연료등을 기준으로 BFS로 탐색하며 가장 가까운 위치의 승객을 태웁니다.
이때 새롭게 이동한 위치가 people의 key에 있다면 candidate 리스트에 넣은 후 candidate 에서 정렬한 뒤 조건에 맞는 [0] idx 만 뽑아서 return 해줍니다.
만약 가야할 위치가 현재 연료보다 더 멀다면(fuel < nc) , bfs가 끝낫는데 손님이 남아있으면 -1로 return 했습니다.
2.승객을 태우고 목적지로 가기 위한 BFS
1번에서의 결과가 -1이면 바로 실행 안되고 다른 값인 경우에 실행됩니다.
똑같이 BFS를 돌리며 nx,ny가 goal에 도달하면 fuel를 더해주고 start_x,start_y 를 업데이트하며 1을 리턴해줍니다.
도저히 7%에서 틀렷습니다가 나오는 이유를 모르겠습니다.
도와주십쇼 고수님들..
6 4 100
0 0 1 0 0 0
0 0 0 0 0 0
0 0 0 0 1 0
0 0 0 1 0 0
6 5
1 6 2 2
1 6 3 5
1 6 5 4
1 6 1 1
시작이 다같으면 답이 틀리네요
ans : 100
출력 : -1
그다음 줄부터 M개의 줄에 걸쳐 각 승객의 출발지의 행과 열 번호, 그리고 목적지의 행과 열 번호가 주어진다. 모든 출발지와 목적지는 빈칸이고, 모든 출발지는 서로 다르며, 각 손님의 출발지와 목적지는 다르다.
모든 손님의 출발지가 달라야 하는거 아닌가요?
또한 주신 예제에서는
1출발점=2출발점=3출발점=4출발점
일때
- +
시작점--출발점 4출발점--4도착점4도착점--4출발점 3출발점--3도착점3도착점--3출발점 2출발점--2도착점2도착점--2출발점 1출발점--1도착점이므로결국(1출발점-1도착점 거리) - (시작점-출발점 거리)가 되어서7-6=1따라서 ans =101이 되어야 맞지 않나요?
정답 코드에 해당 예제를 돌리면 -1이 나옵니당~
모든 출발지는 서로 다르며, 각 손님의 출발지와 목적지는 다르다.
글을 보지 못했었네요.
위 코드로는 돌리면 -1이 나오는데 출발지가 같으면 people에 값이 1개밖에 저장이 안되서 그렇습니다.
저도 7%에서 계속 틀렸다가 "다음 손님을 찾는 로직"을 바꿨더니 통과했어요.
다음 손님을 거리>row>column 순으로 제대로 처리해줬는지 한 고려해보시는걸 추천드립니다.
댓글을 작성하려면 로그인해야 합니다.
kk0640 3년 전
현재 구성은 1. 승객을 찾으러가는 BFS ,2. 승객을 태우고 목적지를 가기위한 BFS로 구성하였습니다.
변수는 dict 형태로 people[(위치)]=숫자, destination[사람숫자] = (목적지) , 로 구성하였습니다.
1. 승객을 찾으러가는 BFS
현재위치,연료등을 기준으로 BFS로 탐색하며 가장 가까운 위치의 승객을 태웁니다.
이때 새롭게 이동한 위치가 people의 key에 있다면 candidate 리스트에 넣은 후 candidate 에서 정렬한 뒤 조건에 맞는 [0] idx 만 뽑아서 return 해줍니다.
만약 가야할 위치가 현재 연료보다 더 멀다면(fuel < nc) , bfs가 끝낫는데 손님이 남아있으면 -1로 return 했습니다.
2.승객을 태우고 목적지로 가기 위한 BFS
1번에서의 결과가 -1이면 바로 실행 안되고 다른 값인 경우에 실행됩니다.
똑같이 BFS를 돌리며 nx,ny가 goal에 도달하면 fuel를 더해주고 start_x,start_y 를 업데이트하며 1을 리턴해줍니다.
도저히 7%에서 틀렷습니다가 나오는 이유를 모르겠습니다.
도와주십쇼 고수님들..