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

AtCoder Beginner Contest 380(2024.11.16)

Posted at

キーワード

AtCoder Beginner Contest 380, split

問題

いろはちゃんは長さ
N (
N≥1 ) の正整数列
A=(A
1

,A
2

,…,A
N

) を持っています。
いろはちゃんは
A を使って、次のように文字列
S を生成しました。

S= | から始める。
i=1,2,…,N の順に、次の操作を行う。
S の末尾に - を
A
i

個追加する。
その後、
S の末尾に | を
1 個追加する。
生成された文字列
S が与えられるので、正整数列
A を復元してください。

制約
S は問題文中の方法で生成された長さ
3 以上
100 以下の文字列
A は長さ
1 以上の正整数列
入力
入力は以下の形式で標準入力から与えられる。

S
出力
答えを以下の形式で、
1 行に空白区切りで出力せよ。

A
1

A
2


A
N

入力例 1
Copy
|---|-|----|-|-----|
出力例 1
Copy
3 1 4 1 5
S= |---|-|----|-|-----| が生成されるような
A は
(3,1,4,1,5) です。

入力例 2
|----------|
出力例 2
10
入力例 3
|-|-|-|------|
出力例 3
1 1 1 6

アルゴリズム

  1. Sを受け取る
  2. Sを"|"で分割する。|と|の間の"-"だけになる
  3. 最初と最後に余計なやつがいるので、それを削除する
  4. それぞれの"-"の数を数え、それを別のリスト(answer)に格納する
  5. 表示形式に合わせて、answerを表示する。

回答

S = input()

l = S.split('|')

l = l[1:-1]

answer = []

for i in range(len(l)):
  answer.append(len(l[i]))

print(" ".join(map(str, answer)))

参考

備考

  • また表示形式を間違えた。
  • l = l[1:-1]のゴリ押し感がある、汎用性が低い。
  • あと単純に次の日に反省を書いているので大部分が忘れている。気づきはすぐにメモする。
  • 他の人を見る限り、ぱっと見同じようなアルゴリズムになってる。というよりおそらく他の人のアルゴリズムのコードは読めないようになっている。
0
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
0
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?