거북이는 음식을 얻기 위해 격자를 따라 움직입니다. 그는 그가 거기에 도착하는 데 얼마나 많은 움직임이 필요한지 알고 싶어합니다.
또한 속도가 느리기 때문에 자신의 영역을 중심으로 텔레 포터를 설치하여 경로가 짧아지면 활용할 수 있습니다. 또는 경로가 길어지면 피하십시오.
거북이 만나기
🐢
그리드상의 거북이 삶
... 거북이 인접한 정사각형으로 이동할 수
그러나 거북이는
거북이는 딸기를 먹고 싶어서 딸기에 도착하는데 얼마나 걸리는지 알고 싶습니다.
이 예제는 거북이 걸릴 것 회전이
다행히도, 거북이가 순간 이동기를 찾았습니다! 그리드에는 서로 매핑되는 두 개의 텔레포트가 있습니다. 텔레 포터를 밟으면 거북이가 즉시 해당 텔레 포터로 이동합니다. 텔레 포터는 매우 불안정하여 한 번 사용한 후에는 사라져 더 이상 사용할 수 없습니다.
도전
초기 그리드 구성 출력이 주어지면 거북이가 딸기에 도달하는 데 걸리는 이동 횟수입니다.
규칙
입력 그리드에 솔루션이 있다고 가정 할 수 있습니다
각 그리드는 하나
strawberry
와 둘portals
그리고 하나만 가질 것입니다turtle
입력 그리드는 편리한 형식으로 입력 할 수 있습니다
당신
teleporters
은 일회용 아이템으로 취급해야 합니다거북이가
teleporter
사각형으로 이동하는 차례 는 이미 해당에teleporter
있습니다. 그는 절대로 움직이지 않고teleporter
계속 움직입니다.최단 경로는 포털을 사용할 필요가 없습니다.
거북이는 산 타일로 들어갈 수 없습니다
당신은 표현하기 위해 어떤 ASCII 문자 또는 정수를 사용할 수 있습니다
mountains
,turtle
,empty grid square
,strawberry
teleporter
쌍 을 나타 내기 위해 동일한 문자 또는 두 개의 다른 ASCII 문자 또는 정수를 사용할 수 있습니다그리드는 동일한 최단 경로 길이를 가진 둘 이상의 경로를 가질 수 있습니다
이것은 코드 골프입니다
규칙에 대한 설명
teleporters
일회용 아이템으로 취급해야 합니다.
추론 :
포털을 두 번 입력하고 종료해야만 해결할 수 있습니다. 이 설명을 할 때 두 솔루션 모두 단일 사용 또는 이전에 사용 된 사각형을 시도 할 이유가 없다고 가정하여 작동했습니다. 열심히 일한 솔루션을 깨뜨리지 않기 위해 이것이 가장 좋은 방법이었습니다. 따라서 이것은 유효하지 않은 그리드로 간주됩니다.
목록으로 형식화 된 테스트 케이스
[ ['T', 'X', 'X', 'S', 'X'], ['X', 'X', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 3
[ ['T', 'M', 'X', 'S', 'X'], ['X', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'O'] ] --> 4
[ ['T', 'M', 'X', 'S', 'O'], ['O', 'M', 'X', 'X', 'X'], ['X', 'X', 'X', 'X', 'X'] ] --> 2
[ ['T', 'M', 'X', 'S', 'X'], ['O', 'M', 'X', 'X', 'X'], ['O', 'X', 'X', 'X', 'X'] ] --> 4
[ ['T', 'M', 'S', 'X', 'O'], ['X', 'M', 'M', 'M', 'M'], ['X', 'X', 'X', 'X', 'O'] ] --> 7
[ ['T', 'X', 'X', 'S', 'X'], ['O', 'M', 'M', 'M', 'X'], ['X', 'X', 'O', 'X', 'X'] ] --> 3
인간을위한 형식의 테스트 케이스
T X X S X
X X X X X
X X X X X --> 3
T M X S X
X M X X X
O X X X O --> 4
T M X S O
O M X X X
X X X X X --> 2
T M X S X
O M X X X
O X X X X --> 4
T M S X O
X M M M M
X X X X O --> 7
T X X S X
O M M M X
X X O X X --> 3
크레딧
설계 및 구조 : Arnauld의 배고픈 마우스
제안 된 과제 편집 조언 : kamil-drakari , beefster