Good Bye 2015 A. New Year and Days
つまらないことを丁寧にやるだけ。
A. New Year and Days
問題
以下のいずれかの条件が与えられる。 2016年の日で、これを満たすものの日数を答えよ。
- $x$曜日である。($1 \le x \le 7$)
- 何らかの月の$x$日目である。($1 \le x \le 31$)
実装
datetimeを使ってみたもの
#!/usr/bin/env python3
import datetime
x, of, y = input().split()
x = int(x)
cnt = 0
d = datetime.date(2016, 1, 1)
while d.year < 2017:
if y == 'week' and x == d.isoweekday():
cnt += 1
if y == 'month' and x == d.day:
cnt += 1
d += datetime.timedelta(1)
print(cnt)
本番提出したもの
#!/usr/bin/env python3
day_of_month = \
[ 31
, 29 # or 28
, 31
, 30
, 31
, 30
, 31
, 31
, 30
, 31
, 30
, 31
]
first_day = 5 # fri
x, of, y = input().split()
x = int(x)
if y == 'week':
x = x % 7
z = 0
k = first_day
for i in range(12):
for j in range(day_of_month[i]):
if y == 'week':
if k == x:
z += 1
elif y == 'month':
if j+1 == x:
z += 1
k = (k + 1) % 7
print(z)