본문 바로가기
백준 알고리즘/JAVA

백준/2869/달팽이는 올라가고 싶다/JAVA

by minsol Kim 2021. 9. 29.

2869번: 달팽이는 올라가고 싶다 (acmicpc.net)

 

2869번: 달팽이는 올라가고 싶다

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

www.acmicpc.net

문제

땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.

달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.

달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.

입력

첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)

출력

첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다.

문제에서 사용한 개념에 대해 정리해봤다. 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
 
public class Main {
 
	public static void main(String[] args) throws IOException {
 
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        
		int up = Integer.parseInt(st.nextToken());
		int down = Integer.parseInt(st.nextToken());
		int height = Integer.parseInt(st.nextToken());
 
		int temp = (height - down) / (up - down);
		if ((height - down) % (up - down) != 0)
			temp++;
 
		System.out.println(temp);
	}
}

달팽이가 도달하는 높이는 전체 길이에서 내려가게 되는값을 빼주면 된다. -> height-down

달팽이가 하루에 올라가는 높이는 up-down이다. 

도달하는 높이에서 하루에 올라가는 높이를 나누면 정상까지 얼마나 걸리는지 나온다. 

근데 나머지가 발생한경우 다시 한번 더 올라가야하기 때문에 if문을 사용하여 예외처리를 해주었다. 

 

'백준 알고리즘 > JAVA' 카테고리의 다른 글

백준/2775/부녀회장이 될테야/JAVA  (0) 2021.10.04
백준/10250/ACM 호텔/JAVA  (0) 2021.10.01
백준/1193/분수찾기/JAVA  (0) 2021.09.28
백준/2292/벌집/JAVA  (0) 2021.09.27
백준/1712/손익분기점/JAVA  (0) 2021.09.24

댓글