반응형
달팽이는 올라가고 싶다
시간제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
0.15 초 (추가 시간 없음) |
128 MB | 66018 | 15786 | 13379 | 25.973% |
문제
땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.
달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.
달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
출력
첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.
예제 입력 1 예제 출력 1
2 1 5 4
처음에 while문으로 낮에 올라가고, 밤에 미끄러지는 거리를 계산했더니 시간초과로 틀렸었다.
하루를 고민하다가 결국 풀이를 봤는데 이런 방법도 있구나.... 알고리즘 머리는 왤케 좋아지지 않는것 같지....... 슬프다
나의 풀이
import java.io.*;
import java.util.StringTokenizer;
public class Snail_Wanna_Climb {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(bf.readLine());
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
int V = Integer.parseInt(st.nextToken());
V -= A; // 첫날 값 미리 구해주기.
int up = A - B; // 실제 올라가는 값
int day = V / up;
if (V % up != 0) {
day++;
}
bw.write(day + 1 + "");
// resource manage
bw.flush();
bw.close();
}
}
반응형