[백준 16953번 C/C++] A → B

 

https://www.acmicpc.net/problem/16953

 

16953번: A → B

첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.

www.acmicpc.net


 

해결전략

 

Greedy, 탐욕법, 그리디 알고리즘

 


 

코드

 

#include <iostream>
using namespace std;

int a, b;
int cnt;

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	cin >> a >> b;

	bool success = false;
	while(b > 0)
	{
		if (b == a) {
			success = true;
			break;
		}

		int temp = b;
		if (b % 2 == 0){
			b /= 2;
		}
		else if (b % 10 == 1){
			b /= 10;
		}

		if (temp == b) break; // 위의 2가지 조건 둘 다 해당하지 않는 경우

		cnt++;
	}

	cnt = success ? cnt+1 : -1;
	cout << cnt;

	return 0;
}

 

 


 

'⭐ 코딩테스트 > 백준' 카테고리의 다른 글

[백준 15683번 C/C++] 감시  (0) 2023.11.18
[백준 15686번 C/C++] 치킨 배달  (0) 2023.11.16
[백준 7576번 C/C++] 토마토  (0) 2023.11.06
[백준 1806번 C/C++] 부분합  (0) 2023.10.31
[백준 2470번 C/C++] 두 용액  (1) 2023.10.30