Baekjoon/단계별로 풀어보기
[BOJ/백준] 2869번 달팽이는 올라가고 싶다 C++ 문제 풀이
s_ih_yun
2020. 11. 7. 04:06
728x90
단계별로 풀어보기 - 수학 1 단계 - [5단계] 2869번
문제
문제 링크 : www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
입력 복사 :
2 1 5
풀이
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int V, A, B;
int day = 0, snail = 0;
cin >> A >> B >> V;
while (1) {
day++;
snail += A;
if (snail >= V)
break;
snail -= B;
}
cout << day << endl;
}
처음엔 이와 같이 반복문을 통해 달팽이가 오르내리는 하루하루를 실제로 반복했습니다.
하지만 이런식으로 구현하면 시간 초과가 떠요...
정답을 (v-b-1)/(a-b)+1 의 식으로 구하는 방법으로 코드를 짰습니다.
CODE
#include <iostream>
using namespace std;
int main() {
int a, b, v;
cin >> a >> b >> v;
int count;
count = (v - b - 1) / (a - b) + 1;
cout << count << endl;
}
결과
728x90