LeetcodeとかアメリカIT企業のコーディングテストのレベル
ずっと思ってるのが、atcoderは一定レベル以上からプログラミングとは関係なく、意味不明な数え上げやmod計算、xorなどが出てくる。 SAPIXあたりに魂の元がある算数パズルと揶揄されているだけあって、アルゴリズム習得の邪魔にもなったりする。典型問題を徹底的に嫌うので、常識的なレート(水色くらいまで)では、ダイクストラ法などはめったに出ない。
ンメリカIT企業のコーディングテストに使われる問題を集めたLeetcodeだとHardでもABCでCくらいで、ワテもatcoderはC,酷いときはBまで解ければ一般的なプログラミングには十分と感じている(ちなみに当方緑)。
Reverse Nodes in k-Group leetcode.com
linkedリスト(なぜかクラスで表現している)をKの範囲で反転させる。リンクを付け替える方が正統だと思うけど楽なのでvalを書き換える。 これでハード。atcoderだと300点、paizaだとAくらい。
class Solution: def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]: p=head s=0 x=[] N=0 for i in range(10000): x.append(p.val) p=p.next N+=1 if p==None: break p=head s=N//k for i in range(10000): if i>=k*s: break m=i%k ib=k*int(i//k) p.val=x[ib+k-m-1] p=p.next if p==None: break return head