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
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[BOJ/백준] 2775번 부녀회장이 될테야 C++ 문제 풀이 (0) | 2020.11.07 |
---|---|
[BOJ/백준] 10250번 ACM 호텔 C++ 문제 풀이 (0) | 2020.11.07 |
[BOJ/백준] 1193번 분수찾기 C++ 문제 풀이 (3) | 2020.11.05 |
[BOJ/백준] 2292번 벌집 C++ 문제 풀이 (0) | 2020.11.05 |
[BOJ/백준] 2839번 설탕 배달 C++ 문제 풀이 (0) | 2020.11.05 |