LoginSignup
1
0

More than 3 years have passed since last update.

初めてのAtCorder

Posted at

昨日、初めてAtCorderのコンテストに挑戦してみた。
pythonも初心者だし、まずはABC!と思ってたのに、初陣はAGCだった。おかげでA問題しか手をつけられず、ACも出せずじまい…。

全部WAなわけではないので、多分改良すれば通りそう。
解説みたいな漸化式とか動的計画法とか考えずにごり押ししてみたから、未来の自分が手直ししてACさせてくれることを信じてこの記事を書いてる。

考え方は、
 文字列sを関数bunkatu内でリスト化
 s[i]番目がs[i+1]と等しいかどうか。
  等しくないときは、ansリストにs[i]を追加
  等しいときは、s[i]とs[i+1]を結合してansリストに追加
   s末尾だとうまくいかないからそのときはans末尾とs[-1]を結合
 最後にlen(ans)を表示

AGC037A.py
def bunkatu(s):
    s = list(s)
    res = int(len(s))
    ans = list(s[0])
    for i in range(1,res ):
        if(s[i] != "A"):
            if(ans[-1] != s[i]):
                ans.append(s[i])
                s[i] = "A"
            else:
                if(s[i]==s[-1]):
                    ans[-1] += s[i]
                else:
                    ans.append(s[i]+s[i+1])
                    s[i+1] = "A"
        else:
            continue
    return len(ans)

s = input()

print(bunkatu(s))

たぶんどっかで何かが抜けてるんだろうなあ。

1
0
2

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