상세 컨텐츠

본문 제목

< 백준 BaekJoon : 16953번 A → B > C++

C++/Baekjoon

by J2on 2024. 3. 30. 03:11

본문

<< 문제 >>

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

 

16953번: A → B

첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다.

www.acmicpc.net

 

앞에서부터 B를 찾으러 올라가는 것은 너무 비효율적이다. 

 

오히려 B에서 A로 좁혀가는 것이 훨씬 효율적으로 풀이가 가능하다.

 

사실 그것만 하면 진짜 별거없는 문제

 

<< 코드 >>

#include <iostream>
using namespace std;

int main() {
	int NumA, NumB;
	cin >> NumA >> NumB;

	int result = 1;
	while (1) {
		if (NumB % 10 == 1) {
			NumB /= 10;
		}
		else if (NumB % 2 == 0){
			NumB /= 2;
		}
		else { // 2로 나뉘어 떨어지지 않는 경우
			result = -1;
			break;
		}

		result++;

		if (NumB == NumA) {
			break;
		}
		else if(NumB < NumA) { // NumA보다 작아지는 경우
			result = -1;
			break;
		}
	}
	cout << result;
}

 

<< GitHub>>

https://github.com/J2on/StudyAlgorithm_Part2/tree/f9e84d8d93e141b9f932bd4f6505c3deaa8ac531/%EB%B0%B1%EC%A4%80/Silver/16953.%E2%80%85A%E2%80%85%E2%86%92%E2%80%85B

 

StudyAlgorithm_Part2/백준/Silver/16953. A → B at f9e84d8d93e141b9f932bd4f6505c3deaa8ac531 · J2on/StudyAlgorithm_Part2

This is a auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - J2on/StudyAlgorithm_Part2

github.com

 

관련글 더보기

댓글 영역