반응형
https://www.acmicpc.net/problem/16953
각 연산을 역으로 수행하며 B를 A로 변환시켜주었습니다.
b가 짝수라면, 2로 나누어줍니다. (1번 연산)
b의 일의 자리 숫자가 1이라면, 10으로 나누어줍니다. (2번 연산)
두 연산을 취할 수 없는 상태라면, B는 A가 될 수 없습니다.
#include <cstdio>
int a, b, c = 1;
int main() {
scanf("%d %d", &a, &b);
while (a < b) {
if (b % 2 == 0) b /= 2;
else if (b % 10 == 1) b /= 10;
else break;
c++;
}
printf("%d", a == b ? c : -1);
}
반응형
'Algorithm' 카테고리의 다른 글
백준 14676 : 영우는 사기꾼? (0) | 2021.11.15 |
---|---|
백준 18870 : 좌표 압축 (0) | 2021.11.15 |
백준 1461 : 도서관 (0) | 2021.11.15 |
백준 16438 : 원숭이 스포츠 (0) | 2021.11.15 |
백준 1105 : 팔 (0) | 2021.11.15 |