LoginSignup
1
3

0.はじめに
 通常のコンテストとA~Dの難易度の上がり方が
 違う感じでした。点数を見て気づきました。
 Bが難しいというか面倒で時間がかかりDまでしか
 解けませんでしたが、レートは+29と上がりました。

1.A - Attack
 AをBで割り、割り切れれば商を、割り切れなければ商に1足した
 値を出力しました。

 https://atcoder.jp/contests/abc302/submissions/41539881

2.B - Find snuke
 愚直に実装したら、3KBを超える超大作に。
 整頓した書き方にしたかったのですが
 いったん実装した時点でだいぶ時間が経過していたので
 そのまま提出しACでした。
 
 考え方
  ・文字列からuをさがす
  ・uを中心に左上、左、左下、下、右下、右、右上、上から見た場合に
   snukeになるかをチェックし、snukeになっていれば座標を出力して終了

 https://atcoder.jp/contests/abc302/submissions/41562592

3.C - Almost Equal
 ざっと見た感じで、なかなか難しいと思いましたが
 制約を見たところ文字列は8種まで、文字数は5文字までだったの
 全パターンチェックで行けそうなことに気づきました。
 実装
  ・itertoolsをインポート
  ・文字列をリストSに格納。
  ・itertools.permutationsでSから5個を抽出したリストvを作成
  ・vを順に読んでいき、単語単位の差が2以上あった場合は
   ブレイクして次のvへ、無い場合は次の単語のチェックをする
  ・vの単語すべてのチェックがOKの組み合わせがあったらYesを出力して
   終了
  ・すべてのvをチェックして、Yesの組み合わせが無かったらNoを出力
   して終了
 
 https://atcoder.jp/contests/abc302/submissions/41567964

4.D - Impartial Gift
 ぱっと見B、Cよりもかんたんだな・・・と思いつつ実装。
 10分で回答できました。

 実装
  ・リストA、Bを昇順ソート
  ・変数iにN-1をjにM-1をセット
  ・以下、iかjが-1になるまで繰り返し
   ・A[i]-B[j]の絶対値がD以下の場合
    ・A[i]+B[j]の値を出力して終了
   ・A[i]-B[j]の絶対値がDより大きい場合
    ・A[i]がB[j]より大きい場合
     ・iから1をマイナス
    ・B[j]かA[i]以上の場合
     ・jから1をマイナス
  ・繰り返し終了しても該当組み合わせがない場合-1を出力して終了

 https://atcoder.jp/contests/abc302/submissions/41571563

以上

1
3
1

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
3