반응형
문제
정수 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
반응형
'Language > C#' 카테고리의 다른 글
[C#] 9184번 신나는 함수 실행 (DP) (5) | 2024.09.27 |
---|---|
[C#] 1541번 잃어버린 괄호 (0) | 2024.09.17 |
[C#] 1463번 1로 만들기 (다이나믹 프로그래밍, DP) (5) | 2024.08.28 |
[C#] 백준 2693번 N번째 큰 수 (3) | 2024.08.24 |
[C#] 백준 15650번 N과 M (2) (0) | 2024.08.23 |