HHKB プログラミングコンテスト 2020


f:id:penyooo:20200112235130p:plain


  • 独学者です。( 2019 / 9 ~ )
  • AtCoder の問題に Python で取り組んでいます。
  • ABC で4問目(茶か緑)まで解けることを目標にしています。

完全に独学なのでコードは酷いと思います。

AtCoder やってる方、お気軽にコメントください。





結果



f:id:penyooo:20201010235732p:plain

全然出来ねぇ~~!!

ビギナーコンテスト以外に参加するとレートが死んでいく。

いや違うか。単に最近なんかイマイチなんよね。

何でだろう、脳細胞死んでるのかもしらん。







問題と解答と勉強


atcoder.jp



提出したコード
if input() == "Y":
    print(input().upper())
else:
    print(T)









atcoder.jp



提出したコード
H, W = map(int, input().split())
count = 0
S = input()
for i in range(W-1):
    if S[i+1] == "." and S[i] == ".":
        count += 1
        
for i in range(H-1):
    s = input()
    for i in range(W-1):
        if s[i+1] == "." and s[i] == ".":
            count += 1
    for i in range(W):
        if s[i] == "." and S[i] == ".":
            count += 1
    S = s
            
print(count)



正直よくわからんかった。

ゴリゴリのゴリ押しである。

何の工夫も無い駄コードである。



もう少し考えてみた。
H, W = map(int, input().split())
S = [input()for i in range(H)]
count = 0

for h in range(H):
    for w in range(W-1):
        if S[h][w] == S[h][w+1] == ".":
            count += 1
for h in range(H-1):
    for w in range(W):
        if S[h][w] == S[h+1][w] == ".":
            count += 1        
print(count)



ゴリってるのは変わらないけど、興奮しても糞は投げないタイプ、みたいな。

奇麗めのゴリラって言いたかったけど伝わってるだろうか。









atcoder.jp



これがね、さっぱりよ、時間制限的に。

TLEになるやつ。
num = list(range(200001))
_ = input()

 
for i in list(map(int, input().split())):
    try:
        num.remove(i)
    except ValueError:
        pass
    print(num[0])



言われたことするだけだったらこれで良いはずなんだけど。

時間制限に通らないんよねぇ。



考えても無駄だったやつ。
_ = input()
p = list(map(int, input().split()))
 
P = []
ans = 0
 
for i in p:
    P.append(i)
    if i > ans:
        print(ans)
    else:
        for i in range(200001):
            if i not in P:
                print(i)
                ans = i
                break



工夫したつもり。

何とね、TLEが9つから7つに減ったんですよ!

そんだけ。



でね!!ここからが重要!!

通るやつ。
_ = input()
p = list(map(int,input().split()))

P = set()
ans = 0

for i in p:
    P.add(i)
    for j in range(ans,200001):
        if j not in P:
            print(j)
            ans = j
            break



答えを探してて見つけたコレ。

通るんよねぇ。

ほとんど同じなのに。

list じゃなくて set を使えば良かったんか?

はぁ・・・そうですかそうですか。なるほどわからん







atcoder.jp



何かD問題で500人くらいしか解けてないから無理ね。

atcoder.jp



何故かE問題は1000人解けてるけど、DよりEが解きやすいとかわからんわ!



atcoder.jp



まあF問題は安定の50人よね。