Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

시작에서 끝으로 이동하는 데 필요한 최소 단계 수를 찾는 C++ 프로그램

<시간/>

좌표(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