前書き
ここドイツでは、労働時間に関する裁定は非常に厳格です。1日6時間以上働く場合は、少なくとも30分の休憩を取る必要があります。9時間以上働く場合は、45分の休憩を取る必要があります。勤務時間が6時間未満の場合は、休憩を取る必要はありません。
もちろん、これらの休憩を分割することもできますが、各パートをカウントするには少なくとも15分以上の長さが必要です。
チャレンジ
この課題では、作業期間のリストを取得し、次のルールを使用して、十分な休憩が取られたかどうかを確認する必要があります。
w
仕事時間を時間単位にしてみましょう:
w < 6 -> No breaks needed
6 <= w < 9 -> 30 minute break needed
w >= 9 -> 45 minute break needed
さらに、各休憩の長さは少なくとも15分である必要があります。また、必要以上の休憩を取ることができます。これらはすべて「少なくとも」値です。
入力
入力は作業期間のリストになります。正確な形式はユーザー次第ですが、時間と分として時間値のみを含める必要があります。
例:
ここでの形式はタプルのリストですが、各タプルは作業期間を表します。タプルの最初の要素は開始時間になり、2番目の要素は終了時間になります。
[("07:00","12:00"),("12:30","15:30"),("15:45","17:15")]
これにより、合計作業時間は9.5時間、合計休憩時間は45分になります。
これらの作業期間は、休憩で区切る必要はありません。互いにちょうど続く作業期間もあります(例はテストケースを参照)。
また、休憩は勤務時間にカウントされないことに注意してください。これらは2つの別個の値です。
作業期間が順序付けられていると想定できます。
出力
この入力、出力を考えるとtruthyの十分な休憩が取られた場合は、値とfalsy値でない場合。
ルール
- 提出物で使用している入力形式を指定します。
- 空の入力を処理する必要はありません。常に少なくとも1つの作業期間があります。
- 作業期間は1日のみであるため、深夜に作業を行う必要はありません。
- 日付/時刻-/ Whatever-ビルトインは、言語に付属している限り許可されます。
- 機能または完全なプログラムが許可されます。
- 入出力のデフォルト規則。
- 標準の抜け穴が適用されます。
- これはcode-golfなので、バイト数が最も少なくなります。タイブレーカーは以前の提出です。
テストケース
上記の例と同じ入力形式。
[( "07:00"、 "12:00")、( "12:30"、 "15:30")、( "15:45"、 "17:15")]-> TRUE // 9: 30時間の仕事、45分の休憩-> OK [( "07:20"、 "07:45")、( "07:59"、 "11:30")、( "11:55"、 "15:00")]-> FALSE // 7: 01h作業、39分の休憩、ただし15分未満のため最初の休憩はカウントされません [( "06:00"、 "09:00")、( "09:00"、 "11:50")]-> TRUE // 5:50hのみ動作するため、休憩は不要 [( "07:30"、 "12:00")、( "12:30"、 "16:00")]-> TRUE // 8時間の作業、30分間の休憩-> OK [( "08:00"、 "12:30")、( "13:05"、 "17:45")]-> FALSE // 9:10h作業、必要な45回の代わりに35分だけ休憩 [( "08:00"、 "14:00")]-> FALSE // 6時間動作、休憩なし、30分必要
ハッピーコーディング!