풀이
- 처음 해당 문제를 해결하고자 했을 때는
- 좀 다르게 접근해버려서 고민을 했는데
- 우선 결정적으로 해결하게 된 방법으로는
- 조건식으로 노래 끝나는 시간과 휴식이 끝나는 시간 사이에
- 벨 울리는 시간이 있는지 확인하면 되는데
- 이때 놓치고 있던 부분이
- e_song <= bell <= e_rest
- 이렇게 하니까 5초를 넘어가다보니 문제가 생겨 아래와 같이 작성하여 해결.
import java.io.*;
import java.util.*;
public class 부재중전화 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
Integer n = Integer.parseInt(st.nextToken());
Integer l = Integer.parseInt(st.nextToken());
Integer d = Integer.parseInt(st.nextToken());
Long e_song = 0L;
Long e_rest = 0L;
Long bell = 0L;
for (int i = 0; i < n; i++) {
e_song += l;
e_rest = e_song+5;
while (e_rest > bell) {
if (e_song <= bell && bell < e_rest) {
System.out.println(bell);
System.exit(0);
} else bell += d;
}
e_song = e_rest;
}
System.out.println(bell);
}
}
'알고리즘' 카테고리의 다른 글
[백준, 자바, 1357번] 뒤집힌 덧셈 (0) | 2024.01.03 |
---|---|
[백준, 파이썬, 1357번] 뒤집힌 덧셈 (0) | 2024.01.03 |
[백준, 파이썬, 1333번] 부재중 전화 (0) | 2024.01.02 |
[백준, 자바, 1296번] 팀 이름 정하기 (0) | 2024.01.02 |
[백준, 파이썬, 1296번] 팀 이름 정하기 (0) | 2024.01.02 |