この前のABC380で入緑しました🎉
という訳でお約束(?)の色変記事
自己紹介
- 高等専門学校専攻科卒(情報工学科)
- Pythonをよく使う
- 動的計画法とセグ木が好き(できるとは言っていない)
- 座標系とグラフが苦手
やっていること
- ADTに参加する
- ゴルフ
- (Streakを繋げる)※切れました
ADTに参加する
週3回開催されるAtCoder Daily Trainingにできるだけ参加しています
参加している階級(?)はEASY
その代わりスマートフォン上でコーディングという縛りプレイ
タッチパネルだとコードを打ちづらいので最低限の
タイピングで済ませるようになるかなという謎特訓
ゴルフ
精進とかで過去問を解く場合
A,B問題はすぐ終わって面白くないので
できるだけ提出コードのサイズを少なくするコードゴルフをしています
可読性が犠牲になるがパズルみたいで楽しい
提出したあとは他の人の提出結果をみて
どうすればよいのかという考察とかしています。
(Streakを繋げる)※切れました
ここ半年はStreakを繋げることをモチベーションに
毎日精進(とはいえA,B問題をゴルフする程度)をしていたが
サイトの情報がうまく反映されていなくて切れてしまったと勘違い
その瞬間にやる気がごっそり減り
本当に切れてしまった😢
逆に切れたことはこの呪縛から解放されたと思い、
これからはStreakを気にせず取り組んでいきたい
今後の予定
- E問題を解く
- 鉄則本の問題やる
E問題を解く
緑になった次の目標は水色ということで
E問題を解けるように地力をつけていきたい。
もうすぐアドベントカレンダーが始まるので
ただ解くだけではなく記事にまとめる予定
鉄則本の問題やる
この前の記事で鉄則本を買ったという話だが、
このまえUnionFindの勉強で開いたくらいで
ほぼ積ん読状態😅
AtCoderで全問実行できるのでできるだけACしときたい
よく使う記述
ただただ文章ならべるだけもあれなので
自分がよく使う記述を紹介
- 入力関数
- デバッグ出力
- defaultdict
- Counter
入力関数
この前の記事から新たに関数が増えました
- rI: 整数単体
- rLI: 整数のリスト
- rI1: 整数に1引いた数(New!)
- rLI1: 整数のリストの各要素に1引いた数(New!)
- rS: 文字列単体
- rSI: 文字列のリスト
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rI1(): return (int(sys.stdin.readline().rstrip())-1)
def rLI1(): return list(map(lambda a:int(a)-1,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
デバッグ出力
デバッグ用の出力を標準エラー出力に出す関数
def err(*args): print(*args, file=sys.stderr)
defaultdict
初期値が設定されている連想配列
初期値が必要な要素を複数管理するときに便利
参考
import sys
from collections import defaultdict
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rI1(): return (int(sys.stdin.readline().rstrip())-1)
def rLI1(): return list(map(lambda a:int(a)-1,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
d = defaultdict(lambda: -1)
def main():
N = rI()
A = rLI()
B = [-1] * N
for i,a in enumerate(A, start=1):
B[i-1]=d[a]
d[a]=i
print(*B)
if __name__ == '__main__':
main()
Counter
与えたリストの要素の個数を数えて辞書に出力してくれる
カウントしたものの個数を更に数えて
2個あるものは何種類かとかたまーにやる
from collections import Counter
import sys
def rI(): return int(sys.stdin.readline().rstrip())
def rLI(): return list(map(int,sys.stdin.readline().rstrip().split()))
def rS(): return sys.stdin.readline().rstrip()
def rLS(): return list(sys.stdin.readline().rstrip().split())
def err(*args): print(*args, file=sys.stderr)
def main():
S = rS()
s_cnt = Counter(S)
s_cnt_cnt = Counter(s_cnt.values())
for v in s_cnt_cnt.values():
if v != 2:
print("No")
break
else:
print("Yes")
if __name__ == '__main__':
main()
まとめ
入緑したので色変記事みたいのものをかいてみた
なにかの参考になれば嬉しい