[BOJ] C++ 2884 "알람 시계" 문제 풀이 _ nov

    반응형

    #INFO 

    난이도 : BRONZE3

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

     

    2884번: 알람 시계

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

    www.acmicpc.net


    #SOLVE

    h(시간)과 m(분)을 케이스를 나누어 계산하면 풀리는 간단한 문제였다.

    나는 h가 0인 케이스와 0이 아닌 케이스, m이 45보다 작은 케이스와 45보다 크거나 같은 케이스로 나누어 계산했다.

     

    h가 0인 케이스

    	if (h == 0) {
    		if (m < 45) {
    			h = 23;
    			m = 60 - (45 - m);
    		}
    		else {
    			m = m - 45;
    		}
    	}

    h가 0이 아닌 케이스

    	else {
    		if (m < 45) {
    			h = h - 1;
    			m = 60 - (45 - m);
    		}
    		else {
    			m = m - 45;
    		}
    	}

    #CODE

    #include <bits/stdc++.h>
    using namespace std;
    
    int main(void) {
    	ios::sync_with_stdio(0);
    	cin.tie(0);
    	int h, m;
    	cin >> h >> m;
    	if (h == 0) {
    		if (m < 45) {
    			h = 23;
    			m = 60 - (45 - m);
    		}
    		else {
    			m = m - 45;
    		}
    	}	
    	else {
    		if (m < 45) {
    			h = h - 1;
    			m = 60 - (45 - m);
    		}
    		else {
    			m = m - 45;
    		}
    	}
    	cout << h << " " << m;
     	return 0;
    }

    반응형

    댓글

    Designed by JB FACTORY