Search
Duplicate
📗

A→B

주차
문제번호
16953
언어
티어
실버
유형
그리디
BFS
그래프
nj_Blog
nj_상태
이해도
100%
풀이
사람
이해도 2
13 more properties

문제접근

a에서 부터 생각을 하게 되면 그리디로 풀 수 없음
→ 어떤 값을 선택해야 최종 목적지로 갈 수 있는지 선택하기 어려움
b에서부터 a로 가는 것을 생각하게 되면 경우가 명확해짐
1.
2의 배수인가
2.
뒤에 1이 붙어있는가
3.
둘다 해당이 안 되는가(-1)

놓쳤던 부분

while문 안에서 조건과 만족하지 않는 경우 -1을 출력하는 분기도 있어야 했는데 그것이 없어서 무한루프로 시간초과 발생

코드

2016 KB

0 ms

#include <iostream> int a,b; void input_setting() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); } void input() { std::cin >> a >> b; } void solution() { int answer; answer = 0; while (a < b) { if (b % 2 == 0) b /= 2; else if (b % 10 == 1) b /= 10; else { std::cout << "-1"; return ; } ++answer; } if (a > b) std::cout << "-1"; if (a == b) std::cout << ++answer; } int main(void) { input_setting(); input(); solution(); return (0); }
C++
복사