문제

이 문제를 처음 봤을때 간단한 식이 생각 났다. (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.*;
 
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

 

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

2009년  (0) 2019.07.08
캔디구매  (0) 2019.07.08
유학금지  (0) 2019.07.08
파티가 끝나고 난 뒤  (0) 2019.07.08
슈퍼마리오문제  (0) 2019.07.08

+ Recent posts