본문 바로가기
Algorithm

[구현/수학] 백준 2884 알람 시계 - Python, Java

by jangThang 2022. 1. 21.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    2884번: 알람 시계

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     45분 이른 시간을 구하는 문제입니다. 

     

     

    2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학

     

    [Algorithm] 단골 1번 문제, 구현 / 수학

    1. 구현  단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할

    star7sss.tistory.com

     60진법인 시간을 계산하는 문제입니다. SW적성시험에서도 가끔 나오는 유형으로, 의외로 시간 계산하는 게 쉽지 않습니다. 시간은 12진법이고, 분은 60진법으로 계산해야 합니다.

     

     

     

    3. 코드

    H, M = list(map(int, input().split()))
    if M < 45:
        M += 15
        H -= 1
        if H < 0:
            H = 23
    
    else:
        M -= 45
    print (H, M)

     두 가지 경우로 나누어서 풀이합니다.

     1) 45분 이하인 경우, 윗 자리인 '시간'에서 1을 빼고 60을 더해서 뺍니다. -45 + 60이므로 +15만 해주면 됩니다.

     다만, 시간이 0시일 경우에는 23시로 보정해줍니다.

     

     2) 45분 이상인 경우, 분에서만 45을 빼면 됩니다.

     

     

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    
    		int H = sc.nextInt();
    		int M = sc.nextInt();
    
    		if(M >= 45) {
    			System.out.printf("%d %d", H, M-45);
    		}
    		else {
    			if(H == 0) {
    				System.out.printf("%d %d", 23, M+60-45);
    			}
    			else
    				System.out.printf("%d %d", H-1, M+60-45);
    		}
    	}
    }

     

     

    반응형

    댓글