cyphen156

백준-조건문-2525 오븐 시계 C/C++ 본문

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

백준-조건문-2525 오븐 시계 C/C++

cyphen156 2023. 9. 27. 13:44

2525번: 오븐 시계 (acmicpc.net)

 

2525번: 오븐 시계

첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

www.acmicpc.net

세 정수(H, M, T)를 입력받아 시간 변환을 구현하는 문제이다.

이전 문제인 알람 시계를 일부 수정하면 간단하게 해결 된다.

이번엔 -연산이 아닌 +연산을 사용한다/

제약사항

  • 0 ≤ H ≤ 23
  • 0 ≤ M ≤ 59
  • 0 <= T <= 1,000

C 풀이

오븐 시계_2525.c

#define	_CRT_SECURE_NO_WARNINGS

#include <stdio.h>

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

	while (input >= 60) { //입력값 > 60
		input -= 60;
		H += 1;
	}
	M += input;

	if (M > 59) {
		H += 1;
		M -= 60;
	}
	if (H >= 24)
		H -= 24;
	printf("%d %d", H, M);
	return 0;
}

C++ 풀이

오븐 시계_2525.cpp

#include <iostream>

using namespace std;

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

    M += T;
    // 분 단위 시간이 60을 넘어 갈 때
    // 시간 ++ 분 -60
    while (1)
    {
        // 분 단위가 60을 넘어가지 않으면 루프 탈출
        if (M < 60)
            break;
        if (M >= 60)
        {
            M -= 60;
            ++H;
        }
    }


    // 시간이 24를 넘어가면 0으로 초기화
    if (H >= 24)
        H -= 24;
    cout << H << ' ' << M << endl;
    return 0;
}

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

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