좌표(x, y)가 있다고 가정합니다. 2D 그리드에서 로봇은 (0, 0) 위치에 있고 (x, y)에 도달하려고 합니다. 위, 아래, 왼쪽 또는 오른쪽으로 이동하거나 현재 셀에 머무를 수 있습니다. 최소한의 명령으로 목적지에 도달하기를 원합니다. 필요한 단계 수를 계산해야 합니다.
따라서 입력이 x =3과 같으면; y =4이면 출력은 7이 됩니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
return x + y + minimum of |x - y|, |x - y + 1|, and |x - y - 1|
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; int solve(int x, int y) { return x + y + min(abs(x - y), min(abs(x - y + 1), abs(x - y - 1))); } int main() { int x = 3; int y = 4; cout << solve(x, y) << endl; }
입력
3, 4
출력
7