풀이
- 1분마다 운동/휴식 선택
- 운동 N분 함
- 운동하면 T증가 / 휴식하면 R 감소
- 맥박 M 넘기면 안됨 / m은 넘어야 함 ( 처음 맥박 = m)
-> 운동 N분 빨리 채워야 함 -> 맥박 되면 무조건 운동
운동을 한번 하는데 최대 맥박을 넘어서면 운동을 못하니
m+T > M
혹은
Max - min 의 값 즉 최대 맥박과 최소 맥박의 차이가 운동하고 나면 상승하는 T 맥박 보다 작으면 운동 못함
M-m < T 일때 -1 출력
<자바문법>
더보기
Integer.parseInt(String s)
숫자형의 문자열을 인자 값으로 받으면 해당 값을 10진수의 Integer형으로 반환 해줌
Integer.parseInt(String s, int radix)
숫자형의 문자열을 첫 번째 인자 값으로 받고 변환할 진수값을 입력하면 해당 진수에 맞춰 Integer 형으로 반환해줌
StringTokeonizer
java.util 패키지에 속해 있으며, 하나의 문자열을 여러 개의 문자열로 분리하기 위해 사용
문자열을 분리하기 위해 사용되는 기초문자를 구분 문자라고 한다.
구분 문자로 분리된 문자열을 토큰 이라고 한다.
StringTokenizer 클래스의 주요 메소드
메소드 | 설명 |
int countTokens() | 분리한 토큰의 개수 |
boolean hasMoreTokens() | 토큰이 존재하면 True 리턴 |
String nextToken() | 존재하는 토큰 리턴 |
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
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class test {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// 5 70 120 25 15
// N m M T R
int N = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
int T = Integer.parseInt(st.nextToken());
int R = Integer.parseInt(st.nextToken());
int time = 0; // 구해야할 최소 시간
int cnt = 0; //운동 횟수
int pulse = m; // 초기맥박 m 으로 초기화
if(M - m < T)
System.out.println("-1");
while(cnt < N){
// M 이하일때만 운동 가능
if(pulse + T <= M){
time++;
cnt++;
pulse += T;
}else{ // 휴식해야 한다면
if(pulse - R < m) { // 최소맥박 보다 작으면 맥박은 m이 된다
time++;
pulse = m;
}else{
time++;
pulse -= R;
}
}
}
System.out.println(time);
}
}
|
cs |
728x90
반응형
'자료구조+알고리즘 > BOJ' 카테고리의 다른 글
[18111][java][백준]마인크래프트 (0) | 2021.10.24 |
---|---|
[1966][java][백준]프린터큐 (0) | 2021.10.24 |
[1205][java][백준][실버Ⅴ]등수구하기 (0) | 2021.10.18 |
[1152][java][백준][브론즈Ⅱ]단어의 개수 (0) | 2021.10.15 |
[1100][java][백준][브론즈Ⅱ]하얀칸 (0) | 2021.10.15 |