Last active
June 27, 2020 14:41
-
-
Save YOUNGJUN2/7c137f4225c233e91fe33aa67b8e375c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import datetime | |
split = lambda x: x.split() | |
# 요일을 비교해 날짜 계산 | |
def calculate(date, dayWeek): | |
if dayWeek == "Monday": | |
l = [(date + datetime.timedelta(days=-1)).day, date.day, (date + datetime.timedelta(days=1)).day, | |
(date + datetime.timedelta(days=2)).day, (date + datetime.timedelta(days=3)).day, | |
(date + datetime.timedelta(days=4)).day, | |
(date + datetime.timedelta(days=5)).day] | |
if dayWeek == "Tuesday": | |
l = [(date + datetime.timedelta(days=-2)).day, (date + datetime.timedelta(days=-1)).day, date.day, | |
(date + datetime.timedelta(days=1)).day, (date + datetime.timedelta(days=2)).day, | |
(date + datetime.timedelta(days=3)).day, | |
(date + datetime.timedelta(days=4)).day] | |
if dayWeek == "Wednesday": | |
l = [(date + datetime.timedelta(days=-3)).day, (date + datetime.timedelta(days=-2)).day, | |
(date + datetime.timedelta(days=-1)).day, date.day, (date + datetime.timedelta(days=1)).day, | |
(date + datetime.timedelta(days=2)).day, | |
(date + datetime.timedelta(days=3)).day] | |
if dayWeek == "Thursday": | |
l = [(date + datetime.timedelta(days=-4)).day, (date + datetime.timedelta(days=-3)).day, | |
(date + datetime.timedelta(days=-2)).day, (date + datetime.timedelta(days=-1)).day, date.day, | |
(date + datetime.timedelta(days=1)).day, | |
(date + datetime.timedelta(days=2)).day] | |
if dayWeek == "Friday": | |
l = [(date + datetime.timedelta(days=-5)).day, (date + datetime.timedelta(days=-4)).day, | |
(date + datetime.timedelta(days=-3)).day, (date + datetime.timedelta(days=-2)).day, | |
(date + datetime.timedelta(days=-1)).day, date.day, | |
(date + datetime.timedelta(days=1)).day] | |
if dayWeek == "Saturday": | |
l = [(date + datetime.timedelta(days=-6)).day, (date + datetime.timedelta(days=-5)).day, | |
(date + datetime.timedelta(days=-4)).day, (date + datetime.timedelta(days=-3)).day, | |
(date + datetime.timedelta(days=-2)).day, | |
(date + datetime.timedelta(days=-1)).day, date.day] | |
if dayWeek == "Sunday": | |
l = [date.day, (date + datetime.timedelta(days=1)).day, (date + datetime.timedelta(days=2)).day, | |
(date + datetime.timedelta(days=3)).day, (date + datetime.timedelta(days=4)).day, | |
(date + datetime.timedelta(days=5)).day, | |
(date + datetime.timedelta(days=6)).day] | |
print(' '.join(list(map(str,l)))) | |
def solution(expression): | |
month, day, dayWeek = split(expression) | |
# 달력 날짜 형태로 변환 | |
date = datetime.date(2019, int(month), int(day)) | |
calculate(date, dayWeek) | |
n = int(input()) | |
for _ in range(n): | |
expression = input() | |
solution(expression) | |
# https://www.algospot.com/judge/problem/read/WEEKLYCALENDAR |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
x
는 위 세가지 조건 중에서 하나의 조건 밖에 만족하지 않는데if
만 사용하면 항상 세가지 조건을 모두 검사함.반면에 위 코드처럼
elif
를 사용하면 하나라도 참인 조건을 만나면 그 이후의 조건은 검사를 하지 않음.