[알고리즘] 파이썬 datetime

Moon·2023년 5월 18일
0
post-thumbnail
post-custom-banner

요즘 공채가 많이 올라온 덕분에 코딩테스트🎫를 거의 매주 보고 있는 것 같다.

프로그래머스, 해커랭크 등 다양한 곳에서 시험을 보고 있는데, 오늘은 해커랭크에서 재밌는 문제를 발견했다.

사실 재밌다기 보다는 모듈을 생각하지 않고.. 풀었다가 고생한 문제다..😂

(문제는 아래 달아놓았습니다!)

문제를 요약하자면, 다음과 같이 표준시간대가 다른 시각들이 주어지고, 그 차이를 "초(seconds)" 단위로 구하면 되는 문제였다.

Sat 02 May 2015 19:54:36 +0530
Fri 01 May 2015 13:54:36 -0000

먼저, 이 문제를 접했을 때 둘 중 하나의 시간대를 기준으로 잡고 차이를 구하면 되겠다고 생각했다. 그러나 생각보다 연도, 월, 일을 처리하는 과정이 복잡했다. (특히, 윤년이 끼면 어떻게 처리해야하나.. 고민하다가 포기했다)

찾아보니, datetime 모듈을 통해 너무나 편리하게 풀 수 있었다..!

먼저 datetime.strptime을 통해 문자열로 주어진 날짜와 시간을 읽고 datetime.datetime 클래스 객체를 만든다.

time_format = '%a %d %b %Y %H:%M:%S %z'
t1 = datetime.strptime(t1, time_format)
t2 = datetime.strptime(t2, time_format)

이후, 두 시각의 차이를 "초(seconds)" 단위로 구하기 위해선 total_seconds() 를 사용하면 끝이었다.

return str(int(abs((t1-t2).total_seconds())))

참고자료
1) Hackerrank Datetime 문제 : Date and Time

2) 파이썬 위키 : 파이썬 Datetime

profile
안녕하세요. Moon입니다!
post-custom-banner

0개의 댓글