1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ABC備忘録[ABC157 C - Guess The Number] (Python)

Posted at

#問題文
以下の条件を満たす$0$以上の整数が存在すれば、それらのうち最小のものを出力してください。そのような整数が存在しなければ、$-1$と出力してください。
十進表記で丁度$N$桁である。($0$は$1$桁の整数とする。その他の整数については、先頭に0をつけた表記は認めない。)
左から数えて$s_i$桁目は$c_i$である。$(i=1,2,⋯,M)$

#制約
入力は全て整数
$1≤N≤3$
$0≤M≤5$
$1≤s_i≤N$
$0≤c_i≤9$

ABC157 C - Guess The Number

#解法
問題文より、求める整数は3桁なので総当たりで計算していきます。

N, M = map(int,input().split())
s = []
c = []
for i in range(M):
  S, C = map(int,input().split())
  s.append(S)
  c.append(C)


for i in range(10 ** (N + 1)):
  Str = str(i)
  
  if len(Str) == N and all([Str[s[j] - 1] == str(c[j]) for j in range(M)]):
      print(Str)
      exit()

print(-1)

二個目のforのなかのifはall関数を使用しています。all関数はリストやタプルのようなオブジェクトの要素のすべてが真のときにTrueを返します。ここですべての条件が一致いているかどうか判定しています。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?