geo_analysisの日記

エンジニアになりたい無職のProjectEuler

プロジェクトオイラー19

プロジェクトオイラーの問題19をPython3を使って解きました。
問題
Problem 19 - Project Euler
1901年1月1日から2000年12月31日までで、月の初めが日曜日である日数を求めなさいという問題です。上記問題ページにいくつかヒントがありますが、Pythonでは日付に関するdatetimeモジュールがあるのでヒントは必要ありません。datetimeモジュールを使って毎年毎月の1日が日曜日かどうかを判定していくだけです。

import time
start = time.time()
from datetime import date
ans = 0
for i in range(1901, 2001):
    for j in range(1, 13):
        if date(i, j, 1).weekday() == 6:
            ans += 1
print(ans)
print(time.time()-start)

f:id:geo_analysis:20160808221326p:plain