[백준 알고리즘] 2869번 달팽이는 올라가고 싶다 Java
2020. 6. 15. 23:39
달팽이가 막대기를 올라가고 싶단다.
높이가 v 인 나무 막대를 달팽이가 올라가는데
낮에는 a미터 올라가고 밤에는 b미터 미끄러진다.
v : 높이
a : 낮에 움직이는 거리
b : 밤에 미끄러지는 거리
d : 올라가는데 걸리는 날
중요한 점은 낮에 올라가면 다시 미끄지지 않기 때문에 먼저 d 를 1 올려주고 v 를 a만큼 먼저 내리고 계산한다.
( a * d ) - ( b * d ) = ( v - a )
( a - b ) * d = ( v - a )
d = ( v - a ) / ( a - b ) 이다
나머지가 0이라면 ( v - a ) / ( a - b ) + 1 이 답이고
나머지가 있다면 ( v - a ) / ( a - b ) + 2 가 답이다. 코드는
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class back2869 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
long a = Long.parseLong(st.nextToken());
long b = Long.parseLong(st.nextToken());
long v = Long.parseLong(st.nextToken());
if((v-a)%(v-b)==0) {
System.out.println(((int) (((v-a)/(a-b))+1)));
}else {
System.out.println((int) (((v-a)/(a-b))+2));
}
br.close();
}
}
처럼 작성했다
'Algorithm & Data Structure > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 1018번 체스판 다시 칠하기 Python (0) | 2021.02.16 |
---|---|
[백준 알고리즘] 2231번 문제 분해합 구하기 Python (0) | 2021.02.02 |
[백준 알고리즘] 1193번 분수찾기 Java (0) | 2020.06.15 |
[백준 알고리즘] 2839번 설탕 배달 Java (0) | 2020.06.15 |
[백준 알고리즘] 1712번 손익 분기점 Java (0) | 2020.06.15 |