12週目#1715カードソート
5290 ワード
🐶 質問する
バックアップリンク
💬 初志
では最悪の場合は100000!計算しなければならない症例です.
見ただけで2億回を超える計算になることがわかります.
直観的に考えると、一番前の数字が一番繰り返して、一番前の数字が一番小さいはずです.
✔」初めての試み
「一番前の数字が最も多く繰り返され、一番前の数字が一番小さいはず」ということを表しています.
そう考えると点火式.
a 1=n 1+n 2、残りa=nn(ただし、n>=2)a 1=n 1+n 2、残りa n=n(ただし、n>=2)a=n 1+n 2、残りa=nn(ただし、n>=2)
Σ1k{n1∗k+n2∗(k−1)+...+nn∗1}\Sigma_1^k\{n_1*k+n_2*(k-1)+...+n_n*1\}Σ1 kͧk+n 2ͭ(kͧ1)+...+nnͧ1}に整理します.# 데이터 입력
N = int(input())
data = []
for _ in range (N) :
data.append(int(input()))
print(data)
# 데이터 오름차순 정렬
data = data.sort()
data_len = len(data)
# 점화식 예외
if data_len == 1 :
print(data[0])
exit(0)
# 점화식 전처리
result = 0
first_set = data[0] + data[1]
del data[0]
del data[1]
data.insert(0, first_set)
# 점화식
for i in range(data_len) :
for _ in range(0, i+1, 1) :
result += data[i]
print(result)
でもずっと
もういいのにこんな間違いを犯すなんて
どうしてリストの長さを求められないのですか?
この時間を検索すると
Reference
この問題について(12週目#1715カードソート), 我々は、より多くの情報をここで見つけました
https://velog.io/@yesterdaykite/12주차-1715-카드정렬하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
# 데이터 입력
N = int(input())
data = []
for _ in range (N) :
data.append(int(input()))
print(data)
# 데이터 오름차순 정렬
data = data.sort()
data_len = len(data)
# 점화식 예외
if data_len == 1 :
print(data[0])
exit(0)
# 점화식 전처리
result = 0
first_set = data[0] + data[1]
del data[0]
del data[1]
data.insert(0, first_set)
# 점화식
for i in range(data_len) :
for _ in range(0, i+1, 1) :
result += data[i]
print(result)
Reference
この問題について(12週目#1715カードソート), 我々は、より多くの情報をここで見つけました https://velog.io/@yesterdaykite/12주차-1715-카드정렬하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol