本サイトABC085B – Kagami Mochiへは以下から
問題:Kagami Mochi
X 段重ねの鏡餅 (X≥1) とは、X 枚の円形の餅を縦に積み重ねたものであって、どの餅もその真下の餅より直径が小さい(一番下の餅を除く)もののことです。例えば、直径 10、8、6 センチメートルの餅をこの順に下から積み重ねると 3 段重ねの鏡餅になり、餅を一枚だけ置くと 1 段重ねの鏡餅になります。ダックスフンドのルンルンは N 枚の円形の餅を持っていて、そのうち i 枚目の餅の直径は di センチメートルです。これらの餅のうち一部または全部を使って鏡餅を作るとき、最大で何段重ねの鏡餅を作ることができるでしょうか。
制約
- 1≤N≤100
- 1≤di≤100
- 入力値はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N
d1
:
dN
出力
作ることのできる鏡餅の最大の段数を出力せよ。
入力例 1
4
10
8
8
6
出力例 1
3
直径 10、8、6 センチメートルの餅をこの順に下から積み重ねると 3 段重ねの鏡餅になり、これが最大です。
入力例 2
3
15
15
15
出力例 2
1
入力例 3
7
50
30
50
100
50
80
30
出力例 3
4
解答例
N = int(input())
d = [int(input()) for _ in range(N)]
unique_diameters = len(set(d))
print(unique_diameters)
解説
この問題は、与えられた餅の直径を使用して、最大の段数の鏡餅を作成することを求めています。餅の直径が同じ場合、それらは同じ段には積み重ねることができません。したがって、異なる直径の餅の数が鏡餅の最大の段数となります。
以下は、この問題を解くためのアプローチです。
- 入力の受け取り:
int(input())
を使用して、餅の枚数N
を受け取ります。[int(input()) for _ in range(N)]
を使用して、各餅の直径のリストd
を受け取ります。
- 異なる直径の餅の数の計算:
- Pythonのsetを使用して、リスト
d
の中のユニークな餅の直径の数を計算します。
- Pythonのsetを使用して、リスト
- 結果の出力:
- ユニークな餅の直径の数(つまり、setの長さ)を出力します。
以下は、このアプローチを実装したPythonのコードです。
# 入力の受け取り
N = int(input())
d = [int(input()) for _ in range(N)]
# ユニークな餅の直径の数の計算
unique_diameters = len(set(d))
# 結果の出力
print(unique_diameters)
【python】input関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の input 関数の使い方です。キーボードから入力した文字や数値を受け取る際に使用します。 input …
【python】range関数の使い方
python公式ドキュメントはこちら Pythonで連続する整数の列や、指定した初期値/最終値/差分で計算される等差数列を得るにはrange関数を使用します。 range関数の書式 ra…
【python】len関数の使い方
python公式ドキュメントはこちら Python で用意されている標準組み込み関数で、引数に指定したオブジェクトの長さや要素の数を取得します。 len関数の書式 len(s) 基本…
【python】print関数の使い方
python公式ドキュメントはこちら Pythonで用意されている組み込み関数の中の print 関数の使い方です。引数に指定した文字列や数値、変数に格納された値などを標準出力…
次の問題へ
AtCoder Beginners Selection ABC085C – Otoshidamaをpythonで解いてみた
本サイトABC085C – Otoshidamaへは以下から 問題:Otoshidama 日本でよく使われる紙幣は、10000 円札、5000 円札、1000 円札です。以下、「お札」とはこ…
前の問題へ
AtCoder Beginners Selection ABC088B – Card Game for Twoをpythonで解いてみた
本サイトABC088B – Card Game for Twoへは以下から 問題:Card Game for Two N 枚のカードがあります. i 枚目のカードには, aiという数が書かれて…
一覧へ
AtCoder Beginners Selection 11問をpythonで解いてみた
AtCoderの初心者向け問題集である AtCoder Beginners Selection の11問をPythonで解説します。 AtCoder Beginners Selection Welcome to AtCoder a = int(input()) b, c…
コメント