728x90
말이 2마리인 경우는 늦게 도착하는 말만 생각해서 문제를 해결하면 된다
결국 가장 늦게 도착하는 말과 문제에서 요구하는 xkm/h의 속력으로 이동하는 크루즈가 종로까지 동시에 도착할 때의
x값을 구해주면 되는 문제임
소수점때문에 거리도 double형으로 통일해주고
변수D의 값 10^9까지 double이 허용해주나 안해주나 헷갈려서 한번 넣어봤는데 한번에 됏음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
class Solution {
private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
private static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
int TC = Integer.parseInt(br.readLine());
for(int i=0; i<TC; i++) {
// Dkm : 종로까지의 거리 : , N : 종로 거리 위 말 마리수
String[] input_DN = br.readLine().split(" ");
double D=Double.parseDouble(input_DN[0]);
int N=Integer.parseInt(input_DN[1]);
// System.out.println(D + " "+N);
double lateArrivalsTime = 0;
for(int j=0; j<N; j++) {
// Kkm : 종로 거리 위 현재 말의 위치, Skm/h : 현재 말의 속도
String[] input_KS = br.readLine().split(" ");
double K=Double.parseDouble(input_KS[0]);
double S=Double.parseDouble(input_KS[1]);
double arrivalsTime = (D-K)/S ;
if(arrivalsTime>lateArrivalsTime) lateArrivalsTime = arrivalsTime;
}
// System.out.println(lateArrivalsTime);
System.out.println("#"+(i+1)+" "+D/lateArrivalsTime);
}
}
}
|
cs |
'알고리즘 풀이 > SWEA' 카테고리의 다른 글
[SWEA][JAVA] 1933. 간단한 N 의 약수 (0) | 2021.06.15 |
---|---|
[SWEA][JAVA] 1938. 아주 간단한 계산기 (0) | 2021.06.15 |
[SWEA][JAVA] 2025. N줄덧셈 (0) | 2021.06.14 |
[SWEA][JAVA] 2027. 대각선 출력하기 (0) | 2021.06.14 |
[SWEA][JAVA] 3143. 가장 빠른 문자열 타이핑 (0) | 2021.06.14 |