このページについて
このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。
見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。
挑戦する課題
レベルアップ問題集の戦セットから「【競技3】深夜時間の表記 (paizaランク D 相当)」を取り上げます。
以下は、問題公開 Web ページからの引用です。
問題
この問題は、弊社営業社員が競技プログラミングに挑戦したものです。
深夜の時刻を表すとき、午前1時は25時、午前2時は26時と表記されることがあります。
このような24時を超える時刻を修正して、1〜12時で表してください。
入力される値
入力は一行で与えられます。
1 |
n |
- n時が入力として与えられます。
期待する出力
入力された時刻を1〜12時に変換し、その数字を出力してください。
条件
すべてのテストケースにおいて、以下の条件を満たします。
25 ≤ n ≤ 36
考え方
今回の場合、 n の値は 25 以上 36 以下ということが分かっているので、単純に入力値から24を引いた値を出力すれば良い。
もう少し一般化するならば剰余を使う。
24時間表示を12時間表記にすれということは、12時間ごとに1に戻れば良いということなので、入力を12で割った剰余を表示すれば良い。
解答例
1 |
print(Int(readLine()!)! - 24) |
一般化すると、24で割った剰余を表示する。今回の場合はどちらの方法をとってもコード量は同じ。
1 |
print(Int(readLine()!)! % 24) |