AtCoder Beginner Contest 120 A〜C問題・情報技術者試験

前書き

AtCoder Beginner Contest 120 A〜C問題を解きました。

A問題

  • 難易度:灰
  • 時間:2分

atcoder.jp

A,B,C=map(int,input().split())
print(min(C, int(B//A)))

B問題

  • 難易度:灰
  • 時間:5分

atcoder.jp

1≤A,B≤100ですので、O(N)の処理で問題ありません。

A,B,K=map(int,input().split())
_lis = [i for i in range(1,101) if A%i==0 and B%i==0] 
print(_lis[-K])

C問題

  • 難易度:灰(高)
  • 時間:15分

atcoder.jp

N個積み上げられたブロックから「ぷよぷよ」みたいに赤と白のブロックが連なると消せる仕組み。
消されたブロックは幾つでしょうという問題。
地道に消していく作業を加えると、計算量はO(N**2)以上となりTLEになるので解けません。

最後に残っているブロックの数はDel =ABS(赤ブロックの総数 - 白ブロックの総数)個です。
消したブロックは(N - Del)個となります。

S=input()
_red,_white=0,0
for i in S:
  if i=='0': _red+=1
  else: _white+=1
print(len(S)-abs(_red-_white))

情報技術者試験(毎日40問)

午前試験では80問出題されるようなので、毎日40問解いていけば継続できるかなと考えました。(流石に80問はしんどい・・・)
本日は29問 / 40問 = 72.5 % の正解率でした。70%は安定して超えたいですね。

Fail Safe vs Fail Soft

  • Fail Safe・・・故障しても安全な側に倒す(遮断機が故障しても閉じたままにする)
  • Fail Soft・・・故障しても最低限は動作させる(必要最低限の機能だけは動作するようにしておく)
  • Fault Tolerant・・・故障しても表に出さない(メイン電源が死んでもサブ電源の起動など)
  • Fool proof・・・利用者の不手際も想定した対策を講じる
  • Fault avoidance・・・そもそも機能の故障が発生を回避する策を講じる

Spooling

「Spool」とは処理対象を一時的に置くことである。CPU(高速)と入出力装置(低速)でのデータのやり取りの際に、一旦磁気ディスク装置にデータを置いて、スループット(単位時間あたりに処理できる量)が低下しないようにすること。

White Box test vs Black Box test

White Box test ・・・モジュールの内部構造が正しく動作するかの検証。
Black Box test ・・・モジュールの内部構造を意識せず、入力に対して適切な出力が得られているかの検証。

White Box testの網羅種類
  • 命令網羅・・・全ての処理を通過するフローを網羅する
  • 判定条件網羅・・・全ての分岐を網羅する
  • 条件網羅・・・判定条件が複数ある場合、全ての条件を網羅
  • 複数条件網羅・・・想定される条件のケース(組み合わせ)を網羅する

個人的には条件網羅と判定条件網羅の判別が難しいですね。

Black Box testの検証種類

Black Box testは単体テスト(モジュールそのものの信頼性検証)→結合テスト(複数の部品と組み合わせて検証)→システム検証(ソフトウェアが仕様通り動作するかの検証)。