문제

이 문제를 처음 봤을때 간단한 식이 생각 났다. (A-B)*day =V 이 식이 가장 먼저 생각이 났지만 예제들 대입할 시 정답이 안나오기 때문에
보류하였다. 기본적으로 (올라감-> 내려감) 이것이 세트로 생각할 텐데 생각을 좀 바꿔서 (내려감 -> 올라감)으로 생각을 바꾸고 문제를
접근하였다.
무조건 달팽이는 A만큼 높이를 올라갈것이다. 또한 (내려감->올라감)을 세트를 두었다고 (A-B)는 바뀌지 않는다. 시작점이 변경되는것!
위의 이러한 조건들을 판단하였을때 식을 도출해낼 수 있다.
1. A+(A-B)*day=V
2. (A-B)*day=V-A
3. day=(V-A)/(A-B)
하지만 여기서 멈추는 것이 아니라 하나의 조건을 더 생각을 해야한다. 정상에 올라간 후 미끄러지지 않는다는 조건이다.
이 조건은 만약 (V-A%A-B)!=0이면 +1을 해줌으로써 해결할 수 있다.
위의 조건을 생각하니 문제가 풀렸다. 식을 못구해서 시간이 좀 많이 걸렸다.(이런문제 좀더 연습 필요..)

|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.StringTokenizer;
public class Main{
public static boolean flag=false;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A=sc.nextInt();
int B=sc.nextInt();
int V=sc.nextInt();
int result=0;
int x=(V-A)/(A-B);
if((V-A)%(A-B)!=0)
{
result+=1;
}
result=result+x+1;
System.out.println(result);
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
|
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽
www.acmicpc.net