cyphen156

백준-조건문-2884 알람 시계 C/C++ 본문

컴퓨터공학/알고리듬 풀이

백준-조건문-2884 알람 시계 C/C++

cyphen156 2023. 9. 27. 13:33

2884번: 알람 시계 (acmicpc.net)

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

입력받은 두 정수를 시간을 기준(24시, 60분)기준으로 변환하여 45분을 감산하여 출력하면 되는 문제이다.

제약사항

  • 0 ≤ H ≤ 23
  • 0 ≤ M ≤ 59

C 풀이

알람 시계_2884 .c

#define	_CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main(void)
{
	int H, M;
	scanf("%d %d", &H, &M);

	if (M < 45) {
		H -= 1;
		M += 15;
		if (H < 0)
			H = 23;
	}
	else {
		M -= 45;
	}
	printf("%d %d", H, M);
	return 0;
}

C++ 풀이

알람 시계_2884.cpp

#include <iostream>

using namespace std;

int main()
{
    int H, M;
    cin >> H >> M;

    // 45분 이상일 경우 시간, 분을 건드릴 이유가 없음
    if (M >= 45)
    {
        M -= 45;
    }

    // 45분 이하일 경우 시간-- 분+60 -45
    else
    {
        // H > 0일 경우 24시로 올릴 필요 없음
        if (H != 0)
        {
            H--;
        }
        else
            H += 23;
        M += 15;
    }
    cout << H << ' ' << M << endl;
    return 0;
}

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub