Tenka1 Programmer Beginner Contest 2019感想戦
コンテストやったきりで復習しないマンなので,
blogに書くことによって強制的に復習するライフハック()を実践していく.
言い訳をする気はないけど(ちょっとある),
今回妙にメチャ回答の表示とか鯖側の処理が遅かった気がする.....
Tenka1 Programmer Beginner Contest 2019
A - On the Way
https://atcoder.jp/contests/tenka1-2019-beginner/tasks/tenka1_2019_a
解けた.
A, B, C = map(int, input().split()) if(A < C < B or A > C > B): print('Yes') else: print('No')
正直言うと,Pythonらしい綺麗なコードですねぇ(ニヤニヤ)と思って解いてた
彼はこのとき,後の絶望を予測することは出来なかった.....
B - *e**** ********e* *e****e* ****e**
https://atcoder.jp/contests/tenka1-2019-beginner/tasks/tenka1_2019_b
解けた.
N = int(input()) S = list(input()) K = int(input()) for i in range(N): if(S[i] != S[K-1]): S[i] = '*' print(''.join(S))
特に何にもない
リスト内包表記を使ってイキる気もなし
C - Stones
https://atcoder.jp/contests/tenka1-2019-beginner/tasks/tenka1_2019_c
解けなかった....
最後に提出した残骸
N = int(input()) S = list(input()) flag = False count_w = 0 count_b = 0 count = 0 S_map = [] for i in S: if(i=="."): count += 1 S_map.append(count) else: S_map.append(count) ans = [] for i in range(N): if(i == 0 or S[i-1] == "." and S[i] == "#"): if(i != 0): left_white = S_map[i] left_black = i - left_white else: left_white = 0 left_black = 0 if(i != N-1): right_white = S_map[-1] - S_map[i] right_black = (N-i-1) - right_white else: right_white = 0 right_black = 0 ans.append(min(left_white+right_white, left_black+right_black, left_black+right_white)) print(min(ans))
一回目の提出で「まあ,今回結果見れるまで時間かかるし,どうせACだし確認しなくていいや」と思ってD問題に移行してしまったorz
途中やっぱ確認しとくかと思ってテストケースの下5つがWAになっているのを確認して,左側白で右側黒のパターンを間違えているのに気づいたのは良かった
そこで綺麗に書き直せば良かったのに,前のクソコードを引き継いで書いたせいで,バグ残りまくりで無事死亡
ちゃんと書き直したら通りました.....
import numpy as np N = int(input()) S = list(input()) S_map = [1 if i=="." else 0 for i in S] cumsum = np.array(S_map).cumsum() cumsum = np.insert(cumsum, 0, 0) ans = [] for i in range(N+1): if(i == 0 or i == N or S[i-1] != S[i]): if(i != 0): left_white = cumsum[i] left_black = i - left_white else: left_white = 0 left_black = 0 if(i != N): right_white = cumsum[-1] - cumsum[i] right_black = (N - i) - right_white else: right_white = 0 right_black = 0 ans.append(min(left_white+right_white, left_black+right_black, left_black+right_white)) print(min(ans))
D - Handstand
https://atcoder.jp/contests/tenka1-2019-beginner/tasks/tenka1_2019_d
解けなかった.....
なんにもわからん
解説読んだらDPで解けるらしい....
誰かのコードを参考にしようと思ったけど,BeginnerでPython3使ってAC出してる人いないんだが
Beginnerじゃないほうでも居なかったけど,PyPy3でAC出してる人はいた
n_knuuさんのコード
綺麗だ......