-
반응형
https://www.acmicpc.net/problem/16953
16953번: A → B
첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.
www.acmicpc.net
-풀이-
dfs를 이용하여 모든 경우를 탐색하며, a==b일경우가 되면 , cnt값을 갱신했다.
-코드-
#include<iostream> #include<algorithm> #include<limits.h> using namespace std; long long answer = LLONG_MAX; void dfs(long long a,long long b,long long cnt) { if (a == b) { answer = min(answer, cnt); return; } else if (a > b) { return; } else { dfs(a * 2, b, cnt + 1); dfs(a * 10 + 1, b, cnt + 1); } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); long long a, b; cin >> a >> b; dfs(a, b,1); if (answer == LLONG_MAX) answer = -1; cout << answer << "\n"; return 0; }
반응형'문제풀이 > 백준oj' 카테고리의 다른 글
[백준OJ] 9465번 스티커 (0) 2021.06.09 [백준OJ] 21758번 꿀 따기 (0) 2021.06.08 [백준OJ] 2096번 내려가기 (0) 2021.06.05 [백준OJ] 7662번 이중 우선순위 큐 (0) 2021.06.02 [백준OJ] 17219번 비밀번호 찾기 (0) 2021.05.29 댓글