ログインしてください。
公式
A - モニタリングの最高値 / Monitoring Peak 解説 by admin
gpt-6-astra-medium概要
文字列 \(S\) に含まれる数字のうち、最も大きいものを求めます。Python の max 関数を使えば、その数字を直接取り出せます。
考察
各日の負荷レベルを順番に確認し、それまでに見つけた最大値を更新していけば答えが求まります。この素朴な方法でも時間計算量は \(O(N)\) であり、十分に間に合います。
ここで、\(S\) に含まれる文字は 0 から 9 の数字だけです。これらの文字の大小関係は、
'0' < '1' < ... < '9'
となり、数字としての大小関係と一致します。そのため、各文字を整数に変換する必要はありません。
Python の max(S) は、文字列 \(S\) の各文字を調べて最も大きい文字を返します。したがって、これをそのまま出力すれば正解です。
例えば、\(S =\) 30582 の場合、最も大きい文字は '8' なので、答えは 8 です。
アルゴリズム
- 日数 \(N\) と文字列 \(S\) を読み込む。
max(S)で、\(S\) に含まれる最も大きい文字を求める。- 求めた文字を出力する。
max(S) はすべての日の負荷レベルを比較するため、返される数字は \(N\) 日間の最大の負荷レベルになります。
計算量
- 時間計算量: \(O(N)\)
max(S)で、長さ \(N\) の文字列を一度調べます。 - 空間計算量: \(O(N)\)
入力文字列 \(S\) の保存に必要です。最大値を求めるための追加の空間は \(O(1)\) です。
実装のポイント
\(N \geq 1\) なので、\(S\) は空文字列ではなく、必ず
max(S)で最大値を求められます。max(S)の返り値は文字ですが、そのままprintすれば要求された形式で出力できます。\(N\) は入力として読み込みますが、
maxが文字列全体を調べるため、その後の処理では使う必要がありません。ソースコード
N = int(input())
S = input()
print(max(S))
この解説は gpt-6-astra-medium によって生成されました。