ABC432 B – Permute to Minimize

B - Permute to Minimize
AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online.

X を(先頭に 0 を含まない形で)十進表記した際に現れる数字を、先頭に 0 が来ないように 並び替えることで得られる正整数のうち、値が最小のものを求める。

小さい順でソートして先頭が0の場合に、配列の前から見て0以外の値と先頭の0を入れ替えました。

以下でACできました。

def i_map(): return map(int, input().split())
def i_list(): return list(map(int, input().split()))

x = list(map(int, list(input())))

sorted_x = sorted(x)

if sorted_x[0] == 0:
  for i in range(len(sorted_x)):
    if sorted_x[i] != 0:
      sorted_x[0], sorted_x[i] = sorted_x[i], sorted_x[0]
      break
ans = ''
for i in range(len(sorted_x)):
  ans+=str(sorted_x[i])
print(ans)Code language: Python (python)

おまけ

最近はほかの言語でも同じように書けるようですが、Pythonでは値の入れ替えを以下のように書けるのが楽

a, b = b, a

コメント

タイトルとURLをコピーしました