1339号単語数学
5396 ワード
1339号:単語数学
レベル:金貨
質問する
民植は数学塾で単語の数学問題を知る宿題を受けた.
単語数学の問題はN個の単語からなり、各単語はアルファベットの大文字だけからなる.このとき,問題は,各アルファベットの大文字を0から9の数字のうちの1つからNの数字に置き換えることである.同じアルファベットを同じ数字に変えるには、2つ以上のアルファベットを同じ数字に変えることはできません.
例えば、GCF+ACDEBを算出する場合、A=9、B=4、C=8、D=6、E=5、F=3、 G=7で決定すると、2つの数の和は99437に達し、最大値となる.
N個の単語がある場合は、プログラムを作成して最大にします.
入力
1行目は単語の個数N(1≦N≦10)を与える.2行目からN行目で単語1行1個.単語はアルファベットの大文字だけで構成されています.各単語に含まれるアルファベットは最大10文字で、数字の最大長は8です.異なる文字は異なる数字を表す.
しゅつりょく
指定した単語の和の最上位値を1行目に出力します.
ビットの高次数値(0-9)が最値です のいくつかの計算を実験として、試してみればわかります. 資料型はレイアウトとストライプを使用します. 配列には単語が含まれています.([’AAA’, ‘BBB’]) ディクシャナリーは英語のアルファベットをキーとし、数字の桁数を値とします. ex.Aが1000位なら{A:1000} Aが再び100の位置から現れると{A:1100}, となる.
100の桁数は10の2平方、10の桁数は10の1平方(pow()です. 二階建てforドアが近い. 最初のfor文は、単語配列にアクセスし、その単語の長さに10を乗算する.(最後は1の位置なのでlen(w)から1を減算) の2番目のfor文は、dictにすでに存在する場合、10桁の平方値を加算し、そうでない場合は加算する単語の各アルファベット(英語文字)にアクセスします. を求める最低価格なので、9から-1まで、桁数の多い値から結果値を乗じます. 9で-1を乗算するので、ディックアルファベットを降順に並べます. 感じ:アルゴリズムの問題を解く場合、主にディックシーケンス番号を使わなくても解くことができるので、それを使わずに近似→結果をより困難にするより簡単な方法があると思います. を望むなら、英語のアルファベットと数字のマッピングでディックシリーズを構成すると思います. Pythonでpow()を使ったことがなかったことが思い出せません 実施能力不足 を解くことができなくても、これらの問題に多く接触し、学習方法を追跡し、 を感じなければならない.
の英語文字が異なる数字で繰り返される場合はdict値に加算でき、単独で処理すべきだと思います. 数学の思考の不足 より簡単なのは、 に文字でアクセスする傾向があるか、またはに元の方法でアクセスする傾向があることである.
レベル:金貨
質問する
民植は数学塾で単語の数学問題を知る宿題を受けた.
単語数学の問題はN個の単語からなり、各単語はアルファベットの大文字だけからなる.このとき,問題は,各アルファベットの大文字を0から9の数字のうちの1つからNの数字に置き換えることである.同じアルファベットを同じ数字に変えるには、2つ以上のアルファベットを同じ数字に変えることはできません.
例えば、GCF+ACDEBを算出する場合、A=9、B=4、C=8、D=6、E=5、F=3、 G=7で決定すると、2つの数の和は99437に達し、最大値となる.
N個の単語がある場合は、プログラムを作成して最大にします.
入力
1行目は単語の個数N(1≦N≦10)を与える.2行目からN行目で単語1行1個.単語はアルファベットの大文字だけで構成されています.各単語に含まれるアルファベットは最大10文字で、数字の最大長は8です.異なる文字は異なる数字を表す.
しゅつりょく
指定した単語の和の最上位値を1行目に出力します.
n = int(input())
words = []
alphabets = {}
for _ in range(n):
words.append(input())
for w in words:
square_root = len(w)-1
for l in w:
if l in alphabets:
alphabets[l] += pow(10,square_root)
else:
alphabets[l] = pow(10,square_root)
square_root-=1
alphabets_s = sorted(alphabets.values(),reverse=True)
sum = 0
num = 9
for i in alphabets_s: #0-9
sum += i * num
num-=1
print(sum)
質問キー:Reference
この問題について(1339号単語数学), 我々は、より多くの情報をここで見つけました https://velog.io/@a87380/1339번-파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol