문제 : boj27194
필요 알고리즘 개념
- 수학
- 수학문제이다!
※ 제 코드에서 왜 main 함수에 로직을 직접 작성하지 않았는지, 왜 Scanner를 쓰지 않고 BufferedReader를 사용했는지 등에 대해서는 '자바로 백준 풀 때의 팁 및 주의점' 글을 참고해주세요. 백준을 자바로 풀어보려고 시작하시는 분이나, 백준에서 자바로 풀 때의 팁을 원하시는 분들도 보시는걸 추천드립니다.
풀이
문제를 한글로 정리해보면 '어딘가 갈껀데 거리는 n미터 남았고, T분 내로 가야댐. m미터는 x만큼의 미터퍼세크로 가고, 나머지는 y만큼의 미터퍼세크로 가야댐. 이 때 T분 내로 도착 가능하면 0, 아니라면 남은 시간을 올림해서 출력' 이다.
그럼 n미터 만큼 이동할 때 걸리는 시간 R은 아래와 같다.
R이 T보다 작거나 같다면 0을 출력하면 되고, 그렇지 않다면 R-T가 남은 시간이므로 R-T를 소수점 올림해서 출력하면 된다.
코드 : github
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
private static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws Exception {
new Main().solution();
}
public void solution() throws Exception {
StringTokenizer st = new StringTokenizer(br.readLine());
long n = Integer.parseInt(st.nextToken());
long t = Integer.parseInt(st.nextToken());
long m = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
long x = Integer.parseInt(st.nextToken());
long y = Integer.parseInt(st.nextToken());
double a = 1d*m/(x*60);
double b = 1d*(n-m)/(y*60);
if (a+b < t) {
System.out.println(0);
} else {
System.out.println((int)(a + b - t + 1));
}
}
}
'PS > BOJ' 카테고리의 다른 글
[자바] 백준 16768 - Mooyo Mooyo (java) (0) | 2023.01.16 |
---|---|
[자바] 백준 11559 - Puyo Puyo (java) (0) | 2023.01.16 |
[쇼미더코드 3회] 백준 27212 - 미팅 (자바 java) (0) | 2023.01.15 |
[쇼미더코드 3회] 백준 27211 - 도넛 행성 (자바 java) (0) | 2023.01.15 |
[쇼미더코드 3회] 백준 27210 - 신을 모시는 사당 (자바 java) (0) | 2023.01.15 |
댓글