Skip to content

Instantly share code, notes, and snippets.

@YOUNGJUN2
Last active June 27, 2020 14:41
Show Gist options
  • Save YOUNGJUN2/7c137f4225c233e91fe33aa67b8e375c to your computer and use it in GitHub Desktop.
Save YOUNGJUN2/7c137f4225c233e91fe33aa67b8e375c to your computer and use it in GitHub Desktop.
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
@nattybear
Copy link

nattybear commented Jun 27, 2020

if x > 0:
    print("x is greater than 0")
if x == 0:
    print("x is 0")
if x < 0:
    print("x is less than 0")

x는 위 세가지 조건 중에서 하나의 조건 밖에 만족하지 않는데 if만 사용하면 항상 세가지 조건을 모두 검사함.

if x > 0:
    print("x is greater than 0")
elif x == 0:
    print("x is 0")
elif x < 0:
    print("x is less than 0")

반면에 위 코드처럼 elif를 사용하면 하나라도 참인 조건을 만나면 그 이후의 조건은 검사를 하지 않음.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment