알고리즘 연습

C++ 백준 2844 알람시계

스폰지박 2021. 9. 24. 20:00
반응형

#include <iostream>

using namespace std;

int main() {
	int h, m;
	

	cin >> h >> m;

	if (h >= 1 && h <= 24 && m >= 45 && m <= 59) {
		m -= 45;
		cout << h << "시" << m << "분";
	}
	else if (h > 1 && h <= 24&& m >= 0 && m < 45) {
		h -= 1;
		m =+ 60;
		m -= 45;

		cout << h << "시" << m << "분";
	}
	else if (h == 1 || h == 0 && m >= 0 && m < 45) {
		h = 23;
		m =+ 60;
		m -= 45;

		cout << h << "시" << m << "분";
	}
	else
		cout << "시간을 확인하세요";

}

틀렸다고 한다.

 

정답처리를 한 예제를 보면 

#include <iostream>
 
using namespace std;
 
int main(int argc, char const *argv[]) {
	int h; // 시
	int m; // 분
 
	cin >> h >> m;
 
	// 만약 입력받은 분이 45분 미만일 경우
	if (m < 45) {
		h--;
		m = 60 - (45 - m);
 
		// 만약 시(hour)가 음수가 될 경우
		if (h < 0) {
			h = 23;
		}
	} else {
		m = (m - 45);
	}
 
	cout << h << " " << m;
 
	return 0;
}

제한 같은 건 생각 안 해도 되는 문제인가 보다.

반응형