https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
해석 및 팁
이문제의 핵심은 시간 제한이다. 따라서 sc.nextInt를 사용하면 시간초과가 발생한다. 그렇기 때문에 BufferReader을 사용해주어야하며 간결하게 짜야한다. 막대기의 길이가 V일때 하루에 가는거리가 A 떨어지는 거리가 B라고 했을때
V - A가 하루에 가는거리는 A - B로 나누어 떨어지면 그다음갈 A만큼만 가면 되기때문에 몫에서 1만더해주면된다.
나누어 떨어지지 않는 경우는 그다음만 A보다 더 가야하기 때문에 2일이 더필요하므로 몫에다 2를 더해주면 된다.
Java 코드
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 a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int v = Integer.parseInt(st.nextToken());
if((v-a)%(a-b) == 0) System.out.println(((v-a)/(a-b))+1);
else System.out.println(((v-a)/(a-b))+2);
}
}
'백준' 카테고리의 다른 글
백준 2775 부녀회장이 될테야(Java) (0) | 2023.01.14 |
---|---|
백준 1193 분수찾기(Java) (0) | 2023.01.13 |
백준 4344 평균은 넘겠지(Java) (0) | 2023.01.13 |
백준 1110 더하기 사이클(Java) (0) | 2023.01.13 |
백준 15969 행복(Java) (0) | 2023.01.13 |