Algorithm & SQL/BAEKJOON
백준 JAVA 2869 달팽이는 올라가고 싶다
YoonJong
2022. 7. 11. 14:38
728x90
반응형
실버난이도로 올라오면서 수학에 관련된 문제들이 제법 많아지고 까다로워졌다.
공식을 세워야하며, 이해에 대한 난이도가 브론즈보다 훨씬 많이 올라갔다고 생각한다.
먼저, 낮 과 밤 따로 계산을해야한다. 예제 1번으로 예시를 들어 공식을 세워보면,
1일 째 낮 = 2
1일 째 밤 = 2 - 1 = 1
2일 째 낮 = 2 - 1 + 2 = 3
2일 째 밤 = 2 - 1 + 2 - 1 = 2
3일 째 낮 = 2 - 1 + 2 - 1 + 2 = 4
3일 째 밤 = 2 - 1 + 2 - 1 + 2 -1 = 3
4일 째 낮 = 2 - 1 + 2 - 1 + 2 -1 +2 = 5 (도착)
공식으로 보면
1일 째 낮 = A
1일 째 밤 = A - B = 1
2일 째 낮 = A - B + A = 3
2일 째 밤 = A - B + A - B = 2
3일 째 낮 = A - B + A - B + A = 4
3일 째 밤 = A - B + A - B + A - B = 3
4일 째 낮 = A - B + A - B + A - B + A = 5 (도착)
낮을 기준으로 공식을 보면 , (A-B) * ( N-1 ) + A = V 가 된다. 정리해보면
AN - A - BN + B + A = V
N(A-B) + B = V
N = (V-B) / (A-B) 이다.
해당식을 대입하면 된다.
package BAEKJOON;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class NO2869 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] str = br.readLine().split(" ");
double a = Double.parseDouble(str[0]);
double b = Double.parseDouble(str[1]);
double v = Double.parseDouble(str[2]);
int n = (int)Math.ceil((v-b)/(a-b)); // 소수가 나오면 올림을 한다.
System.out.println(n);
}
}
728x90
반응형