คำอธิบายปัญหา
สมมติว่าเรามีพิกัด (x, y) บนกริด 2D หุ่นยนต์อยู่ที่ (0, 0) อยากไป (x, y) เดินได้ บน ล่าง ซ้าย ขวา หรืออยู่ที่เดิม ต้องการไปถึงเป้าหมายด้วยคำสั่งน้อยที่สุด ต้องการนับจำนวนขั้นตอน
ตัวอย่าง: x = 3; y = 4 ผลลัพธ์คือ 7
ขั้นตอนการแก้ปัญหา
คืนค่า x + y + min(|x - y|, |x - y + 1|, |x - y - 1|)
ตัวอย่างโค้ด C++
#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