728x90
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
풀이)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int v = Integer.parseInt(st.nextToken());
int day = (v - b) / (a - b);
if((v-b)%(a-b) != 0)
day++;
System.out.println(day);
}
}
이 문제는 수학적으로 생각해야했다.
일단,,, 절대로 v / (a-b)를 하면 안 된다!
목표지점에 도착한 후에는 미끄러지지 않기 때문!!
일단, 나무 길이에서 미끄러지는 길이만큼 뺐을 때(v-b)를 최종적으로 올라가는 길이(a-b)로 나눈 몫은 기본적으로 날짜에 포함된다.
이후 두 가지 경우로 나눌 수 있다.
1. 나무 길이에서 미끄러지는 길이만큼 뺐을 때, 나머지가 0
2. 나머지가 0이 아닐 때
1의 경우, 하루를 더할 필요가 없고, 2의 경우 하루를 더 더해줘야 한다!
728x90
'코테 > 백준' 카테고리의 다른 글
백준 1874 스택 수열(JAVA) (0) | 2023.01.13 |
---|---|
백준 1920 수 찾기(JAVA) (0) | 2023.01.12 |
백준 5430 AC(JAVA) (0) | 2023.01.12 |
백준 11047 동전0 (JAVA) (0) | 2023.01.11 |
백준 7569 토마토(JAVA) (0) | 2023.01.10 |