본문 바로가기
알고리즘/프로그래머스

[프로그래머스] 2016년

by 며루치꽃 2021. 1. 12.

1. 문제

programmers.co.kr/learn/courses/30/lessons/12901

 

코딩테스트 연습 - 2016년

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

programmers.co.kr

2. 내가 생각했던 풀이과정

 

1) 월과 날짜을 입력받습니다.

2) 월과 요일은 배열로 만듭니다.

3) 입력받은 월 - 1을 통해 전월까지의 합을 구하고, 입력받은 (날짜-1)를 더합니다.

4) 더한 값을 7로 나눠 요일의 인덱스를 출력합니다

 

3. 나의 풀이

def solution(a, b):
    day = ["FRI","SAT","SUN","MON","TUE","WED", "THU"]
    month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]
    return day[(sum(month[:a-1])+ b-1) % 7]

4. 다른 사람의 풀이

import datetime

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

5. 새로 알게된 점

time 모듈과 datetime이 모듈이 있는 것을 알게되었다.

  • time.localtime(초)
>>> import time
>>> time.time()
1526694734.1275969

 

time 모듈은 다음과 같이 time 모듈의 time 함수를 호출하면 1970년 1월 1일 0시 0분 0초 이후 경과한 시간을 초단위로 반환합니다. 시간대는 UTC(Universal Time Coordinated, 협정 세계시)를 사용합니다.

 

time.localtime으로 만든 객체는 time.strftime 함수를 사용하여 원하는 날짜/시간 포맷으로 출력할 수 있습니다.

  • time.strftime('포맷', 시간객체)
>>> time.strftime('%Y-%m-%d', time.localtime(time.time()))
'2018-05-19'
>>> time.strftime('%c', time.localtime(time.time()))
'Sat May 19 11:14:27 2018'

datetime 모듈은 datetime.datetime으로 현재 날짜와 시간을 구할 때는 today 메서드를 사용합니다(현재 시간대 기준, KST)

  • datetime.datetime.today()
>>> import datetime
>>> datetime.datetime.today()
datetime.datetime(2018, 5, 19, 13, 15, 15, 881617)

만약 datetime 모듈로 현재 시간을 구할 때 UTC를 기준으로 구하고 싶다면 now 메서드에 pytz 모듈로 시간대를 지정해주어야 합니다.

 


 

파이썬 코딩 도장: 47.4 날짜/시간 모듈 활용하기

파이썬으로 프로그래밍을 하다보면 날짜와 시간 처리를 해야 하는 경우가 자주 생깁니다. 여기서는 날짜와 시간을 표현하는 time과 datetime 모듈을 소개하겠습니다. 47.4.1  time 모듈로 현재 시간

dojang.io

 

댓글