[백준 1173번] 운동
[백준 1173번] 운동
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 48 49 50 51 52 53 54 | import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.StringTokenizer; public class 백준_손수경_정답_1173 { 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 n = Integer.parseInt(st.nextToken()); //운동 시간 int m = Integer.parseInt(st.nextToken()); //맥박 min int M = Integer.parseInt(st.nextToken()); //맥박 Max int t = Integer.parseInt(st.nextToken()); //맥박 증가량 int r = Integer.parseInt(st.nextToken()); //맥박 감소량 int x = m; int ans = 0; //M과 m의 차이가 맥박 증가량 보다 크다면 운동할 수가 없음 if ((M - m) < t) { ans = -1; } else { while (n != 0) { //운동 후의 맥박이 M보다 큰지 아닌지 확인을 함. //운동 가능 if (x + t <= M) { n--; x += t; } //휴식 가능 else { //문제에서 "X-R이 m보다 작으면 맥박은 m이 된다."라고 나와있음. if (x - r < m) { x = m; } else { x -= r; } } ans++; } } bw.write(ans + "\n"); bw.close(); } } | cs |
풀이 방법
이 문제 같은 경우는 맥박을 늘리고 비교를 하기에는 조건문이 많아지므로 다음 맥박이 최대 맥박보다 큰지 작은지를 비교하면서 문제를 풀었다. 문제에서 X-R이 m보다 작으면 맥박은 m이 된다.라고 나와 있는 부분을 못 봐서 계속 틀렸다고 나옴,,,바부;;
댓글남기기