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);

 

 

실행화면

case: 1
case: 2

 

 

 


문제링크: https://www.acmicpc.net/problem/16953

 

반응형