알고리즘 연습

C++ 백준 2844 알람시계

728x90

#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;
}

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

728x90

'알고리즘 연습' 카테고리의 다른 글

C++ 11720 숫자의 합  (0) 2021.09.24
백준 2753 C++ 윤년  (0) 2021.09.24
c++ 2908 상수  (0) 2021.09.24
C++ 11654 아스키코드  (0) 2021.09.24
C++ 백준 2577 숫자의 갯수  (0) 2021.09.24