문제
https://www.acmicpc.net/problem/2869
달팽이가 낮에 A만큼 올라가고, 밤에 B만큼 미끄러질 때, 높이 V의 나무막대를 올라가려면 며칠이 걸리는지 구하는 문제였다.
문제 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer t = new StringTokenizer(br.readLine(), " ");
int A=Integer.parseInt(t.nextToken());
int B=Integer.parseInt(t.nextToken());
int V=Integer.parseInt(t.nextToken());
int day=(V-B)/(A-B);
if((V-B)%(A-B)!=0) day++;
System.out.print(day);
}
}
달팽이는 하루에 (A - B) 미터씩 올라간다.(낮에 A만큼 올라가고 밤에 B만큼 미끄러진다.)
그런데 마지막 날은 미끄러지지 않기 때문에, 목표 높이에서 B를 먼저 빼준다. 즉, V - B미터까지만 반복적으로 오르면 마지막 날 A미터를 올라가면서 끝난다. 그걸 하루에 (A - B)만큼 올라가니 (V - B)를 나눠준다.
만약 나누어 떨어지지 않으면 반올림이 필요하니까 하루를 더 추가한다.
'코딩테스트 > 백준' 카테고리의 다른 글
[백준/JAVA]2501번 약수 구하기 (0) | 2025.05.05 |
---|---|
[백준/JAVA]5086번 배수와 약수 (0) | 2025.05.05 |
[백준/JAVA]2292번 벌집 (0) | 2025.03.22 |
[백준/JAVA]2903번 중앙 이동 알고리즘 (0) | 2025.03.21 |
[백준/JAVA]2720번 세탁소 사장 동혁 (0) | 2025.03.20 |