AtCoder

競技プログラミングの鉄則【1-5問】

palm

こんにちは、Palmです!
明日ついに私の通っている、
東京通信大学の新宿校
プログラミングワークショップ(略してWS)
が開催されます!

今回は明日の予習として
競プロの鉄則を少しやってみました!

https://atcoder.jp/contests/tessoku-book

競技プログラミングの鉄則はこちらです!

それではやっていきましょう!

A01 – The First Problem

与えられた整数の二乗を計算して表示するプログラムです。
とても単純です!!

N = int(input())
print(N**2)

A02 – Linear Search

リストAの中に指定された数Xが存在するかどうかをチェックし、
その結果から 「Yes」 か 「No」を出力するプログラムです!

最初はinput()の位置に迷いましたが、
TrueかFalseを格納する変数を用いることで
みごと出力することができました!

N,X = map(int,input().split())
A = list(map(int, input().split()))
Flag = False
for i in range(N):
  if A[i] == X:
    Flag = True
    break

if Flag:
    print("Yes")
else:
    print("No")

A03 – Two Cards

二つの整数リスト PとQから各リストの要素を一つずつ選んで和を取り、
その和が指定された整数Kと一致するかどうかを調べるものです。

これは難なくクリアできました!

N,K = map(int, input().split())
P = list(map(int, input().split()))
Q = list(map(int, input().split()))

flag = False

for i in range(N):
  for j in range(N):
    if P[i] + Q[j] == K:
      flag = True

if flag:
  print("Yes")
else:
  print("No")

A04 – Binary Representation 1

入力された整数Nを2進数に変換するプログラムです。
2進数は2で割り続け、余り(0か1)を格納していきます

ルールがあって10桁までというのを忘れてたのでrangeの中に10!!
(このループは10回まで実行されるということ!)

N = int(input())
ans = ''

for i in range(10):
  remainder = N % 2
  ans += str(remainder)
  N //= 2
ans = ans[::-1]   
print(ans)

A05 – Three Cards

これは難問だった!
Nまでの範囲内で3つの整数の組み合わせのうち、
3つの数和がKに等しくなるものの数をカウントするプログラムです。

forループを3回繰り返せば完成!と思っていたのですが、
違いました!!

変数がわかりにくくて申し訳ないのですが
変数kは、
iとjの和をKから引くことでkの値が求められ、

kがNの範囲内にあれば、
これがちゃんとした組み合わせと見なされるというものでした!

N, K = map(int, input().split())
count = 0

for i in range(1,N+1):
  for j in range(1,N+1):
    k = K - i - j
    if k >= 1 and k <= N:
      count += 1
print(count)

まとめ

競技プログラミングの鉄則という問題集をやってみました。

明日までにあと5問触ってみたいです!

最後まで読んでいただきありがとうございました!

https://atcoder.jp/contests/tessoku-book


スポンサーリンク
ABOUT ME
Palm
Palm
東京通信大学3年生
私はpalm(ぱるむ)です。お花や自然が大好きです。専門学校でWeb開発を学び、東京通信大学に編入しました。得意分野は、ウェブ開発(フロントエンド、バックエンド)や機械学習(自然言語、データ分析)です。趣味で色々デモ開発をしています。
Recommend
こちらの記事もどうぞ
記事URLをコピーしました