k次大数
8575 ワード
作成日:2022年1月6日午前1:25
私が実装したコードでは,重複する数字(num)があってもsumListに入れ,for文でk番目の大数の構造を検索すると,「模範解答」にset資料構造が用いられる. セットには重複値は含まれていません.◇重複値を追加しようとすると、 が自動的にフィルタリングされる setを使用すると、for文を使わずにリストからk番目の大きな数を直接出力できます.
インプリメンテーションコード
# k번째 큰 수
import sys
sys.stdin = open("input.txt", "rt")
n, k = map(int, input().split())
numList = list(map(int, input().split()))
sumList = []
for i in range(n):
for j in range(i+1, n):
for l in range(j+1, n):
num = numList[i]+numList[j]+numList[l]
sumList.append(num)
sumList.sort(reverse=True)
count = 0
predNum = 0
for num in sumList:
if predNum != num:
count += 1
predNum = num
if count == k:
print(num)
break
模範解答
# k번째 큰 수
import sys
sys.stdin = open("input.txt", "rt")
n, k = map(int, input().split())
numList = list(map(int, input().split()))
sumList = set()
for i in range(n):
for j in range(i+1, n):
for l in range(j+1, n):
num = numList[i]+numList[j]+numList[l]
sumList.add(num)
sumList = list(sumList)
sumList.sort(reverse=True)
print(sumList[k-1])
差異
Reference
この問題について(k次大数), 我々は、より多くの情報をここで見つけました https://velog.io/@lsj8706/k번째-큰-수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol