반응형
문제
풀이
정상에 올라가면 미끄러지지 않는다는 조건 때문에 높이에서 B만큼을 빼고 계산을 한다
(V - B) / (A - B)
소수점이 있다면 올림 처리를 하여 해결하였다
처음에는 V / (A - B) - 1로 풀면 해결될라나 하고 생각했으나
다른 테스트 케이스에서 틀린다
4 1 10 → 3
4 1 11 → 4
100 99 1000000000 → 999999901
마지막 날짜에서 정상에 도달하는 조건 때문에 while로 처리해야 하나?라는 생각도 했었다 (시간제한이 0.15 초라 while문으로는 통과하기 힘들 것이다)
검색을 해보니 마지막 정상 도달하면 미끄러지는 값을 계산할 필요가 없어지므로 V - B를 하여 계산을 하면 된다는 것을 찾아서 해결하였다
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double A = sc.nextDouble();
double B = sc.nextDouble();
double V = sc.nextDouble();
double days = (V - B) / (A - B);
System.out.println((int)Math.ceil(days));
}
}
출처
반응형
'알고리즘 > 백준' 카테고리의 다른 글
백준 1157번 단어 공부 자바 java (0) | 2021.04.15 |
---|---|
백준 1011번 Fly me to the Alpha Centauri 자바 java (0) | 2021.04.14 |
백준 1065번 한수 자바 java (0) | 2021.04.12 |
백준 4673번 셀프 넘버 자바 java (0) | 2021.04.11 |
백준 15552번 빠른 A+B 자바 java (0) | 2021.04.11 |
댓글