Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 코딩
- 백준 #다익스트라 #dijkstra #9370 #c++
- 투포인터 #백준 #boj #20922 #22862
- 사이클 없는 그래프
- graph
- 쌤쌤쌤
- c++ #입출력 #속도 #ios #sync_with_stdio #cin #cout #tie
- boj #백준
- graph #최단경로
- 3343
- c++ #boj #
- 이분탐색 #dp #11053
- N번째큰수
- 22869
- C++
- hcpc
- 줄어드는수
- 백준
- 20117
- backtracking #codetree #디버깅 #삼성코테
- 호반우 상인
- 16202
- LIS #가장긴증가하는부분수열 #
- BOJ
- 레드아보
- 1174
- 30870
- 최소 #공배수 #최대 #공약수 #유클리드 #호제법 #lcm #gcd #c++ #boj #3343 #백준 #장미
- 진법변환 #2to10 #10to2 #이진법 #십진법 #변환 #bitset #c++
- 3D #Reconstruction #computer #vision #volume #metric #tsdf #kinect #fusion
Archives
- Today
- Total
hyunjin
[C++][BOJ16953,A → B] DFS,BFS,그리디 본문
728x90
처음에 DFS로 하려고 했으나
출력하는 level의 문제가 있었기 때문에
BFS로 바꿨다. que에 pair로 숫자와 level을 함께 넣어 풀었다.
풀때 타입 주의
소스 코드
//#include <iostream>
//#include <queue>
//#include <utility>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<ll,int> pli;
ll input_num,target_num,result=0;
//
//void DFS(int current_num, int depth){
// if(current_num == target_num){
// cout<<depth;
// return;
// }
//
// if(current_num*2 <=target_num) DFS(current_num*2,depth+1);
// if(current_num*10+1 <=target_num) DFS(current_num*10+1,depth+1);
//}
void BFS(){
queue<pli> q;
q.push({input_num,1} );
while(!q.empty()){
ll current_num = q.front().first;
int current_depth = q.front().second;
if(current_num == target_num){
cout<<current_depth;
return;
}
if(current_num*2 <= target_num) q.push({current_num *2,current_depth+1});
if(current_num*10 + 1 <= target_num) q.push({current_num*10 + 1,current_depth+1});
q.pop();
}
cout<<"-1";
}
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
cin >> input_num>>target_num;
//DFS(input_num,1);
BFS();
}
다른 방법으로 푼 풀이도 있다
https://www.acmicpc.net/source/17668154
728x90
'알고리즘 연습 > 백준' 카테고리의 다른 글
[C++][BOJ 11000 강의실 배정]그리디,정렬,우선순위큐 (0) | 2021.07.26 |
---|---|
[C++][BOJ 1080 행렬] 그리디 (0) | 2021.07.25 |
[C++][BOJ 11497/통나무 건너뛰기] 그리디, 정렬 (0) | 2021.07.19 |
[C++][BOJ1541-잃어버린 괄호] 그리디,파싱,문자열,수학 (0) | 2021.07.10 |
[C++][BOJ11501] 그리디 알고리즘 (0) | 2021.07.10 |