์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step8] 2869 : ๋‹ฌํŒฝ์ด๋Š” ์˜ฌ๋ผ๊ฐ€๊ณ  ์‹ถ๋‹ค (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 17. 11:13

www.acmicpc.net/problem/2869

 

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)

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋‹ฌํŒฝ์ด๊ฐ€ ๋‚˜๋ฌด ๋ง‰๋Œ€๋ฅผ ๋ชจ๋‘ ์˜ฌ๋ผ๊ฐ€๋Š”๋ฐ ๋ฉฐ์น ์ด ๊ฑธ๋ฆฌ๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

2 1 5

 

์˜ˆ์ œ ์ถœ๋ ฅ 1

4

 

์˜ˆ์ œ ์ž…๋ ฅ 2 

5 1 6

 

์˜ˆ์ œ ์ถœ๋ ฅ 2

2

 

์˜ˆ์ œ ์ž…๋ ฅ 3

100 99 1000000000

 

์˜ˆ์ œ ์ถœ๋ ฅ 3

999999901


ํ’€์ด

1. ๋‹ฌํŒฝ์ด๋Š” ๋‚ฎ์— A๋ฏธํ„ฐ ์˜ฌ๋ผ๊ฐ€๊ณ  ๋ฐค์— B๋ฏธํ„ฐ ๋–จ์–ด์ง„๋‹ค. ํ•˜๋ฃจ์— A-B๋ฏธํ„ฐ ์˜ฌ๋ผ๊ฐ€๋ฉฐ, ์ด V๋ฏธํ„ฐ ์˜ฌ๋ผ๊ฐ€์•ผ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋‚ ์—๋Š” ๋‚ฎ์— A๋ฏธํ„ฐ ์˜ฌ๋ผ๊ฐ€ ์ •์ƒ์— ๋„๋‹ฌํ•˜๊ธฐ๋•Œ๋ฌธ์— ๋ฏธ๋„๋Ÿฌ์ง€์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋งˆ์ง€๋ง‰ ๋‚ ์—” V๋ฏธํ„ฐ ์˜ฌ๋ผ๊ฐ„๋‹ค.

2. Aday - B( day - 1 ) >= V ์ธ day๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค. (day์ผ ๋™์•ˆ ๋‚ฎ์—” A๋ฏธํ„ฐ ์˜ฌ๋ผ๊ฐ€๊ณ  day-1์ผ ๋™์•ˆ ๋ฐค์— B๋ฏธํ„ฐ ๋–จ์–ด์ง)

3. ๋‹ค์Œ ์‹์„ ์ •๋ฆฌํ•˜๋ฉด, day >= ( V - B ) / ( A - B )

4. a b v ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ doubleํ˜•์œผ๋กœ ๊ณ„์‚ฐํ•˜์—ฌ ์˜ฌ๋ฆผ ํ•ด ์ค€๋‹ค.

   ( day๊ฐ€ ( V - B ) / ( A - B )๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์—ฌ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— )

   => Math ํด๋ž˜์Šค์˜ ceil()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ

5. day๋ฅผ ์ถœ๋ ฅ

 

import java.io.*;
import java.util.StringTokenizer;

public class B2869 {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		StringTokenizer st = new StringTokenizer(br.readLine());
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());
		int v = Integer.parseInt(st.nextToken());
		
		double dayd = (double)( v - b ) / (double)( a - b ) ;
		int dayi = (int)Math.ceil(dayd);
		
		System.out.println(dayi);
	}
}