公式

J - 完全週休二日制/Holidays 解説 by kyopro_friends


解法1 日付処理ライブラリを使う

言語によっては、日付や曜日を直接扱うことができます。\(S\) から初めて \(1\) 日ずつ進めながら、曜日をチェックすることで答えを求めることができます。

実装例(Python)

解法2 日付の差を求める

2022年1月1日を1日目、2022年1月2日を2日目……とし、問題を「\(X\) 日目から \(Y\) 日目の間に土曜日と日曜日は何回あるか?」と読み替えます。

この問題はさらに「\(X\) 以上 \(Y\) 以下の整数のうち、\(7\) で割った余りが \(1\)\(2\) になるものは何個あるか?」と読み替えることができ、適切に処理することで \(O(1)\) で答えを求めることができます。

実装例(C)

投稿日時:
最終更新: