Language/C#
[C#] 16953번 A → B
석영
2024. 8. 29. 21:43
반응형
문제
정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다.
- 2를 곱한다.
- 1을 수의 가장 오른쪽에 추가한다.
A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자.
코드
string[] input = Console.ReadLine().Split();
int A = int.Parse(input[0]);
int B = int.Parse(input[1]);
int count = 1;
while (A != B)
{
if (B < A)
{
Console.Write(-1);
return;
}
if (B % 10 == 1)
{
B /= 10;
}
else if (B % 2 == 0)
{
B /= 2;
}
else
{
Console.Write(-1);
return;
}
count++;
}
Console.Write(count);
실행화면
문제링크: https://www.acmicpc.net/problem/16953
반응형