Post

[백준] 2884번 - 알람 시계 [Java][C++]

[백준] 2884번 - 알람 시계 [Java][C++]

문제 링크


1. 문제 풀이

알람 시간을 의미하는 두 정수 $H$, $M$ 이 주어졌을 때, $45$ 분 이전의 시각을 출력해야 하는 문제로 분 정보가 $45$ 이상이면 분 정보만 갱신하면 되며 분 정보가 $45$ 미만일 경우 시 정보도 갱신해야 한다. 이때 시 정보가 $0$ 시이면 $23$ 시가 되며 그 외의 경우 시 정보를 한 시간 전으로 돌리면 된다.


2. 코드

1. 사칙연산 [Java]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.*;
import java.util.*;

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

        int H = Integer.parseInt(st.nextToken());
        int M = Integer.parseInt(st.nextToken());

        if (M >= 45) {
            System.out.println(H + " " + (M - 45));
        } else {
            if (H > 0) {
                System.out.println((H - 1) + " " + (M + 15));
            } else {
                System.out.println("23 " + (M + 15));
            }
        }
    }
}

2. 사칙연산 [C++]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int h, m;
    cin >> h >> m;

    if (m >= 45) {
        cout << h << ' ' << m - 45;
    } else {
        if (h > 0) {
            cout << h - 1 << ' ' << m + 15;
        } else {
            cout << "23 " << m + 15;
        }
    }
}

3. 풀이 정보

1. 사칙연산 [Java]

언어시간메모리코드 길이
Java 11124 ms16128 KB658 B

2. 사칙연산 [C++]

언어시간메모리코드 길이
C++ 170 ms2020 KB355 B

This post is licensed under CC BY 4.0 by the author.