LoginSignup
0
1

More than 3 years have passed since last update.

AtCoderBeginnerContest171復習&まとめ(前半)

Last updated at Posted at 2020-06-23

AtCoder ABC171

2020-06-21(日)に行われたAtCoderBeginnerContest171の問題をA問題から順に考察も踏まえてまとめたものとなります.
前半ではABCまでの問題を扱います.
問題は引用して記載していますが,詳しくはコンテストページの方で確認してください.
コンテストページはこちら
公式解説PDF

A問題 αlphabet

問題文
英大文字か英小文字のいずれか$1$文字$α$が入力されます。$α$が英大文字なら"A"、英小文字なら"a"と出力してください。

大文字か小文字か判定する方法はたくさんあるのですが,今回はstr.istitle()を使って判定しました.

abc171a.py
n = input()
if n.istitle():
    print("A")
else:
    print("a")

B問題 Mix Juice

問題文
ある店で$N$種類の果物、果物$1,…,N$が売られており、それぞれの価格は一個あたり$p_1,…,p_N$円です。
この店で$K$種類の果物を一個ずつ買うとき、それらの合計価格として考えられる最小の金額を求めてください。

安いものから$k$種類の果物を購入すればいいので,価格をsortすれば簡単に解けました.

abc171b.py
n, k = map(int, input().split())
p_list = list(map(int, input().split()))
p_list = sorted(p_list)
print(sum(p_list[:k]))

C問題 One Quadrillion and One Dalmatians

問題文
ロジャーは、彼のもとに突如現れた$1000000000000001$匹の犬をすべて飼うことを決意しました。犬たちにはもともと$1$から $1000000000000001$までの番号がふられていましたが、ロジャーは彼らに以下のルールで名前を授けました。
 ・$1,2,⋯,26$番の番号がついた犬はその順に a,b,...,z と命名されます。
 ・$27,28,29,⋯,701,702$番の番号がついた犬はその順に aa,ab,ac,...,zy,zz と命名されます。
 ・$703,704,705,⋯,18277,18278$番の番号がついた犬はその順に aaa,aab,aac,...,zzy,zzz と命名されます。
 ・$18279,18280,18281,⋯,475253,475254$番の番号がついた犬はその順に aaaa,aaab,aaac,...,zzzy,zzzz と命名されます。
 ・$475255,475256,⋯$番の番号がついた犬はその順に aaaaa,aaaab,... と命名されます。
 ・(以下省略)
つまり、ロジャーが授けた名前を番号順に並べると:
a,b,...,z,aa,ab,...,az,ba,bb,...,bz,...,za,zb,...,zz,aaa,aab,...,aaz,aba,abb,...,abz,...,zzz,aaaa,... のようになります。
ロジャーはあなたに問題を出しました。
「番号$N$の犬の名前を答えよ。」

26進数的な考え方で解けると思って,実装したら通りました.

abc171c.py
n = int(input())
n = n - 1
mozi_list = []
while True:
    k = n % 26
    n = n // 26 - 1
    chr_s = chr(97 + k)
    mozi_list.append(chr_s)
    if n == -1:
        break
for i in range(len(mozi_list)):
    print(mozi_list[len(mozi_list)-i-1], end="")

前半はここまでとなります.
今回,解説がとても丁寧に記述してあったので,詳しい解法はそちらを参考にしてもらえたらと思います.
前半の最後まで読んでいただきありがとうございました.

後半はDEF問題の解説となります.
後半に続く

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1