본문 바로가기
● 프로그래밍 언어/Python

[알고리즘을 위한 도구]파이썬 datetime 라이브러리

by user... 2020. 7. 13.

파이썬 datetime 라이브러리란?

알고리즘 문제를 풀 때 주로 C나 C++를 이용하여 풀고 있다. 하지만 가끔씩 Python으로 제작된 코드들을 보면, 정말 신기할 정도로 간단한 함수가 내재되어 있는 것을 확인할 수가 있다.

 

C나, C++의 경우에는 코드가 여러 줄로 써지지만, Python에 내장된 라이브러리를 import 하여 가져올 경우에는 보다 쉽게 이용할 수 있다는 점이다. 물론 1. 시간 복잡도, 2. 메모리 등 다른 경우의 수를 고려해야 하지만, 일단 이 글은 내가 알고리즘 문제를 해결해나갈 때 보다 편한 방식으로 문제를 풀었던 지식들을 정리하고자 한다.

 

그렇다면 datetime 라이브러리에서 제공해주는 함수를 문제로 바로 살펴보자 다른 datetime라이브러리에서 제공해주는 다른 함수들은 조금만 검색해보면 나올 것이라 생각한다. 나는 프로그래머스에서 푼 문제들에 적용하여 보다 빠르게 함수를 적용시키는 법을 적용시켜 푸는 과정을 쓰고자 한다.

 

 

문제

프로그래머스 - 2016년

 

문제 설명

 

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a , b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT

입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환하세요.

 

해 설

import datetime

def solution(a, b):
    answer = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
    
    return answer [datetime.datetime(2016, a, b). weekday()]

 

 

얼마나 간단한가?

 

C나 C++를 이용해서 풀 수도 있겠지만, 나는 Python을 이용하여 보다 빠르게 시간 함수를 푸는 게 좋다고 생각한다. 이 3가지의 함수가 핵심이다.

 

datetime()

datetime.datime()

weekday()

 

느낀 점

C나 C++, Java를 메인으로 이용하여 푸는 것이 항상 좋다고만 생각을 하였다, 하지만 Python에 내장된 라이브러리를 적재적소에 활용할 줄 아는 것 또한 중요하다고 느꼈다.

 

알고리즘에서 여러 줄을 쓰는 것은 누군가가 불편함을 느껴 그냥 함수 하나에 다 때려 박아 개발하였기 때문이다. 이런 만들어진 무엇인가를 쓰는 것도 매우 중요하다고 생각한다. 프로그래밍 학자가 될게 아니라면, 일단 따라 써보자 그러고 나서 그 이전의 귀찮음의 단계도 느껴보는 자세가 필요하다고 생각한다.

 

"비행기는 양 날개로 날지 않는가?"

불편함과 편리함 2가지의 양 날개를 적재적소에 이용할 줄 아는 카멜레온처럼 되고자 한다.

 

 

 

 

댓글