[2884] 알람시계

sky·2022년 6월 24일
0

BaekJoon Online Judge(B)

목록 보기
28/98
post-thumbnail

문제설명

♕Bronze Ⅲ

문제
"45분 일찍 알람 설정하기"
원래 설정되어 있는 알람을 45분 앞서는 시간으로 바꾸는 것이다. 현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를 언제로 고쳐야 하는지 구하는 프로그램을 작성하시오.

입력
첫째 줄에 두 정수 H와 M이 주어진다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59) 그리고 이것은 현재 상근이가 설정한 놓은 알람 시간 H시 M분을 의미한다.
입력 시간은 24시간 표현을 사용한다. 24시간 표현에서 하루의 시작은 0:0(자정)이고, 끝은 23:59(다음날 자정 1분 전)이다. 시간을 나타낼 때, 불필요한 0은 사용하지 않는다.

출력
첫째 줄에 상근이가 창영이의 방법을 사용할 때, 설정해야 하는 알람 시간을 출력한다. (입력과 같은 형태로 출력하면 된다.)


풀이

  1. 입력 M이 45미만이면 H는 1시간 뒤로 가야하고, M은 45분 뒤로 가야한다.
  2. 이때 M을 그냥 -45분 하게 되면 알맞은 값이 안 나온다. 60에서 45분을 먼저 빼주고 M을 더하면 된다. 60에서 45분을 뺀 값은 15분이므로 15에서 M을 그냥 더해주기만 하면 된다.
  3. 입력 H가 0시일 때 -1을 해줄 경우, 음수가 나오기 때문에 24 + H를 해준다.
  4. 입력 M이 45분 이상일 때, M에서 45분만 빼주면 된다.

Solution

C

#include <stdio.h>

int main() {
    int H, M;
    scanf("%d %d", &H, &M);
    if(M < 45){
        H = H - 1;
        M = 15 + M;
        if(H < 0){
            H = 24 + H;
        }
    }
    else{
        M = M - 45;
    }
    printf("%d %d", H, M);
    return 0;
}

Total Time

  • 2022-03-27 | 13:55 - 14:20
  • 2022-05-24 | 20:00 - 20:25
  • 2022-06-24 | 18:10 - 18:35 드디어 성공!!

Review
3월에 손 댄건데 드디어 풀었다.. 역시 오래 붙잡고 하면 뭐든 되는 듯 하다. 자꾸 안 됐던 이유는 45분 이상일 때의 코드를 작성 안 해줘서 실패한 것이다. 허무한 실수였지만 이제라도 깨달아서 다행이라고 생각한다.

profile
개발자가 되고 싶은 1人

0개의 댓글

관련 채용 정보