https://www.acmicpc.net/problem/16397
16397번: 탈출
첫 번째 줄에 N (0 ≤ N ≤ 99,999), T (1 ≤ T ≤ 99,999), G (0 ≤ G ≤ 99,999)가 공백 하나를 사이에 두고 주어진다. 각각 N은 LED로 표현된 수, T는 버튼을 누를 수 있는 최대 횟수, G는 탈출을 위해 똑같이
www.acmicpc.net
[난이도] Gold4
[유형] BFS
[풀이]
전형적인 BFS 문제이다.
#include <cstdio> #include <queue> #include <string> #include <algorithm> using namespace std; const int mxN=1e5; int N,T,G; bool visit[mxN]; int main(){ scanf("%d%d%d",&N,&T,&G); queue<int> q; q.push(N); visit[N]=1; int cnt = 0; while(!q.empty()){ int sz = q.size(); while(sz--){ int qf = q.front(); q.pop(); if(qf==G) { printf("%d",cnt); return 0; } if(qf+1<mxN){ if(!visit[qf+1]) { visit[qf+1]=1; q.push(qf+1); } } if(qf*2<mxN){ int t=0; if(qf*2!=0){ string a = to_string(qf*2); a[0]--; t = stoi(a); } if(!visit[t]){ visit[t]=1; q.push(t); } } } cnt++; if(cnt>T) break; } puts("ANG"); }
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold4/16397.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Gold4] 1344 : 축구 (C++) (0) | 2021.01.13 |
---|---|
[BOJ/백준][Gold4] 7573 : 고기잡이 (C++) (0) | 2021.01.06 |
[BOJ/백준][Gold4] 14863 : 서울에서 경산까지 (C++) (0) | 2021.01.02 |
[BOJ/백준][Gold4] 3584 : 가장 가까운 공통 조상 (C++) (0) | 2021.01.02 |
[BOJ/백준][Gold4] 10836 : 여왕벌 (C++) (0) | 2020.12.30 |