반응형
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
풀이 코드는 다음과 같습니다.
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
int A,B,V;
cin>>A>>B>>V;
if((V-A)%(A-B)==0)
{
cout<<(V-A)/(A-B)+1;
}
else
{
cout<<((V-A)/(A-B))+2;
}
}
1을 더하고 V-A로 계산하는 이유는 낮에 일어나서 A만큼 가고, 정상에 도달하면 밤이 되기 전에 끝나기 때문입니다.
즉, 밤에는 위로 올라가지 않기 때문에 고려하지 않고 하루에 올라가는 거리(A-B)로 마지막 날 낮에 올라갈 거리를 제외한 거리(V-A)로 계산하면 됩니다.

제한시간이 0.25초인 만큼, 반복문을 쓰면 바로 실패하게 됩니다. V가 1,000,000,000까지 되기 때문입니다.
반복문 없이 한 번에 계산할 수 있는 지를 체크하는 문제입니다.
반응형
'백준 문제풀이' 카테고리의 다른 글
5086 번 : 배수와 약수 (0) | 2023.04.26 |
---|---|
10757 번 : 큰 수 A+B (0) | 2023.04.26 |
2903 번 : 중앙 이동 알고리즘 (0) | 2023.04.25 |
2292 번 : 벌집 (0) | 2023.04.25 |
2720 번 : 세탁소 사장 동혁 (2) | 2023.04.25 |