가장 처음 문제를 봤을 때 문제에서 가르쳐 준대로 반복문을 이용하여 풀었는데 자꾸 시간초과가 났다. 그래서 문제가 뭘까 하고 구글링하다가 문제점을 발견했다. 반복문을 이용하지말고 연산을 이용하여 문제를 풀어야한다고 했다. 그래서 달팽이가 정상에 도달하는 전 날까지를 a-b를 이용해 몇일 이 걸리는 지 확인하고 그 다음 날 아침이 되어 올라갔을 때 정상에 도달하는 지를 확인하며 문제를 풀었다. 그리고 Math클래스를 이용하여 올림값을 구하여 문제를 풀었다. Math클래스의 사용법은 아래의 블로그를 참고하여 문제를 해결하였다.
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.util.Scanner;
public class 달팽이는올라가고싶다 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a = sc.nextLong();
double b = sc.nextLong();
double v = sc.nextLong();
if(v==a) System.out.println(1);
else {
long day = (long) Math.ceil((v-a)/(a-b)) +1 ;
System.out.println(day);
}
}
}
|
cs |
https://hyunah030.tistory.com/8
[BOJ] 백준 2869 - 달팽이는 올라가고 싶다
백준 2869 - 달팽이는 올라가고 싶다 달팽이는 낮에 a 미터를 올라가고, 밤에 b미터 떨어집니다. (정상을 도달하는 순간 미끄러지지 않으므로, 끝나게 됩니다.) 이런 문제는 DP를 접근하는 것과 같이 작은 문제부..
hyunah030.tistory.com
이 블로그가 이 문제에 대해 설명을 잘해놓은 것 같다.
'IT > 알고리즘' 카테고리의 다른 글
백준2775번 부녀회장이될테야 (0) | 2020.01.10 |
---|---|
백준 10250 ACM호텔 (0) | 2020.01.10 |
백준 1193번 분수찾기(수학) (0) | 2020.01.03 |
백준 2292 벌집 (수학) (0) | 2020.01.03 |
프로그래머스 lv2 가장 큰 수 (0) | 2019.11.19 |