관리 메뉴

어읽로꾸거

BOJ 16953 A → B 본문

알고리즘

BOJ 16953 A → B

어읽로꾸거 2019. 3. 27. 23:36

 

백준 16953 링크 

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

해결과정

A에서부터 DFS로 탐색
범위에 맞지 않으면 버리기

코드

#include<iostream>
#include<queue>
using namespace std;
int main() {
    //freopen("input.txt", "r", stdin);
    long long a, b; cin >> a >> b;
    queue <pair<long, long>> q;
    q.push({ a,1 });
    while (!q.empty()) {
        long now = q.front().first;
        long count = q.front().second;
        q.pop();
        if (now == b) {
            cout << count;
            return 0;
        }
        if (now * 2 <= b) {
            q.push({ now * 2, count + 1 });
        }
        if (now * 10 + 1 <= b) {
            q.push({ now * 10 + 1, count + 1 });
        }
    }
    cout << -1;
}

'알고리즘' 카테고리의 다른 글

BOJ 16118 달빛여우  (0) 2019.03.30
BOJ 16469 소년 점프  (0) 2019.03.28
BOJ 1932 정수 삼각형  (0) 2019.03.26
BOJ 1620 나는야 포켓몬 마스터 이다솜  (0) 2019.03.24
BOJ 2580 2239 스도쿠  (0) 2019.03.23