개발하자

[백준][Java] 2884번 알람 시계 본문

Algorithms/Baekjoon

[백준][Java] 2884번 알람 시계

개발리미 2025. 4. 20. 15:04
728x90

안녕하세요 :)

적어도 하루 1개 이상 알고리즘 문제를 해결하려 노력하고 있습니다.

혼자 해결 가능한 문제도 있고, 어려웠던 문제도 있던 차라 복습하고자  글을 써 내려갑니다.

 


 

백준 2884 알람 시계

오늘 문제는 주어진 시간에서 45분을 뺀 시간을 계산하는 문제입니다.

오늘은 시간 계산을 연습할 수 있는 좋은 문제입니다.

 

📘 문제

 

💡 해결 방법

알람 시계는 시와 분으로 이루어진 시간을 입력받고, 그로부터 45분을 뺀 값을 출력합니다.

만약 분이 45보다 작으면 시에서 1을 빼고 60분을 더하여 계산합니다.

* 절차 *

1. 먼저 주어진 분에서 45분을 빼는 계산을 합니다.

2. 만약 뺀 결과가 음수일 경우 60분을 더하고 시에서 1을 빼줍니다.

3. 시가 0일 때는 24로 변경해야 합니다.

 

✅ 풀이 및 설명 (설명은 더보기 클릭)

더보기

 

  • BufferedReader를 사용하여 시(hour)와 분(minute)을 입력받습니다.
  • 먼저 분에서 45분을 뺍니다.
  • 만약 분이 음수가 되면 60분을 더하고 시에서 1을 뺍니다.
  • 시가 0이면 24로 바꿔줍니다.

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] time = br.readLine().split(" ");
        int hour = Integer.parseInt(time[0]);
        int minute = Integer.parseInt(time[1]);

        // 45분을 뺀다
        minute -= 45;

        if (minute < 0) {
            minute += 60; // 분이 음수라면 60분을 더하고
            hour--; // 시에서 1을 뺀다
            if (hour < 0) {
                hour = 23; // 시가 음수면 23시로 설정
            }
        }

        // 결과 출력
        System.out.println(hour + " " + minute);

        br.close();
    }
}

 

시간과 분을 계산하는 문제로 조건문을 사용하여 분과 시간을 조정하는 방법을 연습할 수 있었습니다.

특히 음수 처리와 시와 분의 범위 조정은 고려하는 것이 중요합니다.

 


공부하면서 유용했던 부분 메모 겸 공유하고자 끄적입니다.

고쳐야 하는 부분 있다면 댓글 남겨주시면 수정하겠습니다.

행복한 하루 보내세요 (❁´◡`❁)

728x90
반응형