티스토리 뷰

문제 링크입니다 : https://www.acmicpc.net/problem/13913

 

13913번: 숨바꼭질 4

수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 ��

www.acmicpc.net

 

 

 

#include <iostream>
#include <vector>
#include <queue>
#define MAX 100000

using namespace std;

int N, K;
vector<bool> visited;
vector<int> parent;
vector<int> path;

inline int getNext(int pos, int dir) {
    switch(dir) {
        case 0:
            return pos + 1;
            break;
        case 1:
            return pos - 1;
            break;
        case 2:
            return pos * 2;
            break;
    }
    return -1;
}

int dfs(int start) {
    queue<int> q;
    visited[start] = true;
    q.push(start);
    
    int cnt = 0;

    while(!q.empty()) {
        int qSize = q.size();
        for(int i = 0; i < qSize; i++) {
            int cur = q.front();
            q.pop();

            if(cur == K) {
                int temp = K;
                while(temp != N) {
                    path.push_back(temp);
                    temp = parent[temp];
                }
                path.push_back(N);
                return cnt;
            }
            
            for(int dir = 0; dir < 3; dir++) {
                int next = getNext(cur, dir);
                if(next < 0 || next > MAX) continue;
                if(visited[next]) continue;
                visited[next] = true;
                parent[next] = cur;
                q.push(next);
            }
        }
        cnt++;
    }

    return -1;
}

int main() {
    cin >> N >> K;

    visited.assign(MAX + 1, false);
    parent.assign(MAX + 1, -1);

    cout << dfs(N) << '\n';

    for(int i = path.size() - 1; i >= 0; i--) {
        cout << path[i] << ' ';
    }
    

    return 0;
}

 

 

 

개발 환경 : vscode

지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

 

'알고리즘 > 백준(BOJ)' 카테고리의 다른 글

백준 - 11779 최소비용 구하기 2  (0) 2020.06.30
백준 - 9019 DSLR  (0) 2020.06.30
백준 - 12852 1로 만들기 2  (0) 2020.06.27
백준 - 17404 RGB거리 2  (0) 2020.06.26
백준 - 13549 숨바꼭질 3  (0) 2020.06.25
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함