WN_인생기록

2869 - 달팽이는 올라가고 싶다(백준) 본문

알고리즘/문제풀이

2869 - 달팽이는 올라가고 싶다(백준)

WhNi 2024. 6. 4. 09:02

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

 

 

	//while (height < v)
	//{
	// 	height += a;
	//	if (height == v)
	//	{
	//		answer++;
	//		break;
	//	}
	//	height -= b;
	//	answer++;
	//}
	이렇게 해도 답은 나오나, 큰 수에 있어서 시간 초과가 뜨게 됨.

#include <iostream>

using namespace std;

int main()
{
	int a, b, v;

	cin >> a >> b >> v; 

	// 목표하는 높이
	int targetheight = v - a;

	// 하루에 올라가는 높이
	int dailyclimb = a - b;
	
	// 나머지가 생기면 하루가 더 추가 
	int days =1 + targetheight / dailyclimb + (targetheight % dailyclimb != 0 ? 1 : 0);


	cout << days << "\n";

	return 0;
};

생각나는대로 처음에는 푼 방법이 있으나, 시간초과가 뜨게 되어서 다르게 생각하게 되었다. 

 

목표하는 높이와, 하루 올라가는 높이를 구하고, 계산했을때 나머지가 생기면 하루가 더 추가되는 식으로 생각했다. 

'알고리즘 > 문제풀이' 카테고리의 다른 글

9506-약수들의 합 (백준)  (0) 2024.06.07
2231 - 분해합(백준)  (0) 2024.06.05
2292 - 벌집(백준)  (0) 2024.05.31
2903 - 중앙이동 알고리즘(백준)  (0) 2024.05.31
2566- 최댓값(백준)  (0) 2024.05.27