キーワード
AtCoder Beginner Contest 380, count
問題
6 桁の正整数
N が与えられます。
この整数が以下の条件を全て満たすか判定してください。
N の各桁のうち、
1 は丁度
1 つである。
N の各桁のうち、
2 は丁度
2 つである。
N の各桁のうち、
3 は丁度
3 つである。
制約
N は
100000≤N≤999999 を満たす整数
入力
入力は以下の形式で標準入力から与えられる。
N
出力
N が問題文中の条件を全て満たすなら Yes 、そうでないなら No と
1 行に出力せよ。
入力例 1
Copy
123233
出力例 1
Copy
Yes
123233 は問題文中の条件を満たすので、 Yes と出力します。
入力例 2
Copy
123234
出力例 2
Copy
No
123234 は問題文中の条件を満たさないので、 No と出力します。
入力例 3
Copy
323132
出力例 3
Copy
Yes
入力例 4
Copy
500000
出力例 4
Copy
No
アルゴリズム
- Nを受け取る
- Nを分割する
- 条件をチェック
- True → Yes
- else → No
回答
N = int(input())
l = [int(x) for x in list(str(N))]
if l.count(1)==1 and l.count(2)==2 and l.count(3)==3:
print("Yes")
else:
print("No")
参考
備考
- 進研ゼミでやったやつだ!(桁ごとに分解する)
- 出力形式をYES, NOで間違えた。しょうもないミス。
- 他の人のコードを見る限り、数を数えるタイプ(strで数えている人もいた)とsortして、122333と一致するかどうか検証するタイプ、二つのタイプがあった。