두 전구의 켜지 시작한 시간, 꺼진 시간이 주어질 때 두 전구가 동시에 켜져있던 시간의 길이를 구하는 문제이다.
두 전구의 켜지기 시작한 시간의 최댓값, 꺼지는 시간의 최솟값의 차가 0보다 크면 해당 차이가 동시에 켜진 시간의 길이이고 0보다 작거나 같으면 같이 켜진 시간이 없는 것이다.
int start = Math.max(a, c), end = Math.min(b, d);
if(start > end) sb.append(0);
else sb.append(end - start);
sb.append('\n');
결과 코드는 다음과 같다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int tc=1; tc<=T; tc++) {
sb.append('#').append(tc).append(' ');
StringTokenizer st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken()), b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken()), d = Integer.parseInt(st.nextToken());
int start = Math.max(a, c), end = Math.min(b, d);
if(start > end) sb.append(0);
else sb.append(end - start);
sb.append('\n');
}
br.close();
System.out.print(sb);
}
}'알고리즘(백준 등) 공부' 카테고리의 다른 글
| SWEA 12368. 24시간 (0) | 2026.05.22 |
|---|---|
| SWEA 12369. 일련번호 붙이기 (0) | 2026.05.22 |
| SWEA 12742. 장마 속의 막대 (0) | 2026.05.21 |
| SWEA 13041. 게으름뱅이 왕국 (0) | 2026.05.20 |
| SWEA 13218. 조별과제 (0) | 2026.05.19 |