반응형

안녕하세요 Jin's 입니다.

 

백준 알고리즘로 단계별로 풀어보기의 두번째 목차인

if문 마지막 문제인 알람 시계 ( 문제 번호 : 2884 )의 소스입니다.

 

Java와 Python 두가지 버전 소스입니다.

[ 추가 테스트 케이스 ]

* 0 50 -> 0 5

* 1 45 -> 1 0

 

1) JAVA

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int H = scan.nextInt();
		int M = scan.nextInt();
		scan.close();

		if(M -45 > -1){
			M -= 45;
		}else{
			H --;
			M += 15;
		}
		
		if(H == -1){
			H = 23;
		}
		System.out.println(H+" "+M);
	}
}

 

2) PYTHON

   * 시간계산을 -45분 or + 15분으로 해서 계산할 수도 있지만 datetime을 사용해보고 싶어 사용해봄

     메모리는 37644KB / 시간은 156ms 걸렸고 같은python으로 하신 분들은 메모리는 29380KB / 시간은 64ms가

     걸린 것으로 보아 datetime으로 하는 것 보다는 직접 계산을 하는게 메모리나 시간이 덜 걸리는 것 같다.

import datetime
H, M = input().split()

if int(H) < 10:
    H = '0' + str(H)

time = datetime.datetime.strptime(H+M, '%H%M') - datetime.timedelta(minutes=45)

print(time.timetuple().tm_hour, time.minute)

 

여러분도 한번 풀어보세요!

반응형

+ Recent posts