본문 바로가기

알고리즘(백준 등) 공부

SWEA 12741. 두 전구

두 전구의 켜지 시작한 시간, 꺼진 시간이 주어질 때 두 전구가 동시에 켜져있던 시간의 길이를 구하는 문제이다.

 

두 전구의 켜지기 시작한 시간의 최댓값, 꺼지는 시간의 최솟값의 차가 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