1. 문제
programmers.co.kr/learn/courses/30/lessons/12901
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 모듈로 시간대를 지정해주어야 합니다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 역순 정렬하기 (0) | 2021.04.23 |
---|---|
[프로그래머스] 핸드폰 번호 가리기 (0) | 2021.01.13 |
[프로그래머스] 같은 숫자는 싫어 - 파이썬 (0) | 2020.12.31 |
[프로그래머스] 하샤드 수 - 파이썬 (0) | 2020.12.28 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 - 파이썬 (0) | 2020.12.27 |
댓글