1011 - Fly me to alpha Centauri
1011 문제 링크
접근법
우주선을 이동시키고 나머지 거리를 계산하는 방법 보다는 거리를 구하고 그에 맞는 장치의 작동횟수를 계산하는 수식을 얻어서 해결하려 하였다.
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
double x, y, max=0, d;
int count;
cin >> count;
for(int i =0; i< count; i++)
{
cin >> x;
cin >> y;
d = y - x;
max = (int)sqrt(d);
if(max == 1)
{
cout << d << endl;
}
else if(max*max == d)
{
cout << 2*max -1 << endl;
}
else if(d <= (max*max + max))
{
cout << 2*max << endl;
}
else
{
cout << 2*max+1 << endl;
}
}
return 0;
}
결론
문제를 해결하는데 있어서 입력과 출력간의 수식을 구하는것이 가장 효율적인 방법인것 같다.