コード判定結果
コンテンツブロックなどが動作していないかご確認ください。
有料会員登録が必要です
#07:トップkの探索
この動画を見るにはpaiza会員登録のうえ
有料会員登録が必要です
実技課題 「n 変数の最大最小」
整数nと、要素数nの数列Aと、整数kが与えられるので、数列Aに含まれる数のうち、k番目に大きいものを出力してください。
右側のコードエリアには、入力を受け取り数列の各要素をチェックするループ処理をおこなうコードが用意されています。コードを書き加え、問題を解くコードを完成させてください。
【制約】
・ 入力は全て整数
・ 1 ≦ n ≦ 100
・ -100 ≦ (数列 A の各要素) ≦ 100
・ 数列 A の各要素は異なる
・ 1 ≦ k ≦ n
期待する出力値
2
実技課題 「n 変数の最大最小」
整数nと、要素数nの数列Aと、整数kが与えられるので、数列Aに含まれる数のうち、k番目に大きいものを出力してください。
右側のコードエリアにはコードが用意されています。コメントを参考にコードを書き加え、問題を解くコードを完成させてください。
【制約】
・ 入力は全て整数
・ 1 ≦ n ≦ 100
・ -100 ≦ (数列 A の各要素) ≦ 100
・ 数列 A の各要素は異なる
・ 1 ≦ k ≦ n
期待する出力値
2
このチャプターでは、レベルアップ問題集「線形探索メニュー」の問題「k番目に大きな値」を、線形探索アルゴリズムを用いて解いていきます。
# 入力を受け取る
n = int(input())
a = [int(x) for x in input().split()]
k = int(input())
# 答えを保存する変数maximumを用意して適切な初期値で初期化
maximum = 1000000001
# k回まわるループを書いて
for i in range(k):
# 数列に含まれるmaximum未満の値の最大値を保存する変数next_maximumを用意して適切な初期値で初期化
next_maximum = -1000000001
# 配列(リスト)の全要素をiterateするループを書いて
for value in a:
# 要素がmaximum未満かどうか判定して、next_maximumを更新する
if value < maximum and next_maximum < value:
next_maximum = value
# maximumを更新する
maximum = next_maximum
# 答えを出力する
print(maximum)
5
-9 10 6 0 -3
4
5
-9 10 6 0 -3
3
数列をソートすると、線形探索を行わずとも数列のk番目に大きい値を求めることができます。# 入力を受け取る
n = int(input())
a = [int(x) for x in input().split()]
k = int(input())
# 答えを出力する
print(sorted(a, reverse=True)[k-1])