どん底から這い上がるまでの記録

どん底から這い上がりたいけど這い上がれない人がいろいろ書くブログ(主にプログラミング)

AOJ

0010: Circumscribed Circle of a Triangle

AOJ

外接円 問題ページ 解き方 3つの点が与えられるので、それらを使い三角形の三辺を求める。 外接円の半径は余弦定理と正弦定理より求めることができる。 外心は円の方程式を利用して求める。 円の方程式はx2+y2+lx+my+n=0より、lx+my+n=-(x2+y2)と表すことが…

0103: Baseball Simulation

AOJ

野球シミュレーション 問題ページ 解き方 塁上の情報を記憶するリストを用意する。 イベントデータがHITで、3塁に走者がいるなら1点加算し、1塁と2塁の走者がいるならそれぞれ次の塁へ進ませる。if文を使わなくてもスライスを使えば短いコードで書くこと…

0009: Prime Number

AOJ

素数 問題ページ 解き方 エラトステネスの篩を使って素数のリストを用意し、そこから素数の値のみを取り出したリストを作る。 pytry3g.hatenablog.com そして受け取った入力nに対して、そのn以下の素数の数を出力する。 いろいろやり方はあると思うが今回…

0008: Sum of 4 Integers

AOJ

4つの整数の和 問題ページ 解き方 a, b, cをそれぞれループで回す。a+b+c+d=nよりnからa, b, cの和を引くとdを求めることができる。ここでdは0以上9以下になっていればa, b, c, dの和とnは等しいことがわかる。等しければ組み合わせとしてカウントする…

0007: Debt Hell

AOJ

借金 問題ページ 解き方 一週間ごとに5%の利子を借金に加え、そこから1000円未満を切り上げる。 1000円未満の切り上げは少し工夫をする。例えば、借金が125125円だとする。 これを1000で割ると125.125になる。ここでmathライブラリのceilを使うと…

0102: Matrix-like Computation

AOJ

表計算 問題ページ 解き方 行列を入れるリストmatrix[row][column]を用意し、1行目から行列の値とその和を出力していくだけ。ただし、右詰め5桁で出力する必要があるので、formatを使う。 最後の行は列の和を出力するがこれはzipを使えば簡単に求めることが…

0101: Aizu PR

AOJ

Aizu PR 問題ページ 解き方 文字列を置換するだけ、pythonではreplaceを使うと簡単にできる。 コード(python) n = int(input()) dataset = [input().replace("Hoshino", "Hoshina") for _ in range(n)] print(*dataset, sep="\n")

0501: Data Conversion

AOJ

Data Conversion 問題ページ 解き方 はじめに変換表が与えられるので、それらを辞書に登録する。 あとは、変換するデータを辞書にもとづき変換するだけ。 コード(python) while True: n = int(input()) if n == 0: break converter = {} for _ in range(n): …

Volume16

AOJ

1600: Entrance Examination 1600: Entrance Examination 解答例

1600: Entrance Examination

AOJ

入学試験 問題ページ 解き方 m人の得点をリストにいれる。あらかじめ得点は高い順に入力されることが保証されているのでソートの必要はない。 forループでnminからnmax人までのギャップを調べ、そのギャップが最大値の場合そのときの人数nを答えとする。 …

Volume5

AOJ

0500: Card Game 0501: Data Conversion 0500: Card Game 解答例 0501: Data Conversion 解答例

0500: Card Game

AOJ

Card Game 問題ページ 解き方 AとBの得点をもつリストを用意する。 1番目の要素にAの得点、2番目の要素にBの得点を入れるようにする。Aの得点が高ければ2枚のカードの数字の合計を1番目の要素に、Bの得点が高ければ2枚のカードの合計を2番目の要素に、同じな…

Volume1

AOJ

0100: Sale Result 0101: Aizu PR 0102: Matrix-like Computation 0103: Baseball Simulation 0100: Sale Result 解答例 0101: Aizu PR 解答例 0102: Matrix-like Computation 解答例 0103: Baseball Simulation 解答例

0100: Sale Result

AOJ

販売実績 問題ページ 解き方 売上金額(data)と社員番号(order)を持つリストを用意する。 dataのindexが社員番号に対応している。例えば、社員番号が1001の場合dataは data[1001] = 売上 となる。 orderには入力された順に社員番号を入れていく。 入力が…

Reverse Sequence

AOJ

文字列反転 問題ページ 解き方 与えられた文字列を逆順で出力するだけ。 コード(python) print(input()[::-1])

Volume10

AOJ

1000: A + B Problem 1000: A + B Problem 解答例

GCD and LCM

AOJ

最大公約数と最小公倍数 問題ページ 解き方 pythonのmathモジュールにはmath.gcd関数がありますがこれはバージョン3.5で追加されており、現状Aizu Online Judgeのpythonのコンパイラは3.4.2なのでこれは使うことができません。なので、ユークリッドの互除法…

1000: A + B Problem

AOJ

販売実績 問題ページ 解き方 整数A、Bを空白区切りで受け取り、足すだけ。 コード(python) while True: try: print(sum(map(int, input().split()))) except: break

Simultaneous Equation

AOJ

連立方程式 問題ページ 解き方 連立方程式の解き方をプログラムで書いていくだけ。 ① ax+by=c ② dx+ey=f 始めにyを求める。yを求めるには ①xd - ②xaでxを消してyを求めることができる。 yが求まれば、①にyを代入し、 x=(c-by) / a でxを求めることが…

Volume0

AOJ

0000: QQ 0001: List of Top 3 Hills 0002: Digit Number 0003: Is it a Right Triangle? 0004: Simultaneous Equation 0005: GCD and LCM 0006: Reverse Sequence 0007: Debt Hell 0008: Sum of 4 Integers 0009: Prime Number 0010: Circumscribed Circle …

Is it a Right Triangle?

AOJ

直角三角形 問題ページ 解き方 3辺の長さを受け取った後ソートする。 一番長い辺をc、それ以外をそれぞれa, bとしa²+b²=c²が成り立てば直角三角形となる。 コード(python) def triangle(dataset): a, b, c = dataset if a*a + b*b == c*c: return 1 return 0…

Digit Number

AOJ

桁数 問題ページ 解き方 整数a,bを受け取り足した後、文字列に変換しその長さを出力する。 コード(python) while True: try: a, b = map(int, input().split()) except: break string = str(a+b) print(len(string))

List of Top 3 Hills

AOJ

山の高さ 問題ページ 問題 10個の山の高さのデータを読み取り、その中で高い順から3つ出力する。 Input 山の高さ1 山の高さ2 . . 山の高さ10 制約 0 ≤ 山の高さ ≤ 10000 Output 1番目に高い山の高さ 2番目に高い山の高さ 3番目に高い山の高さ 解き方 i…

QQ

AOJ

九九 問題ページ 問題 以下のような表記で、九九を出力するプログラムを作成してください。 1x1=1 1x2=2 . . 9x8=72 9x9=81 制約 ×記号の代わりに小文字のxを用いること。 解き方 for文とprint文を使う コード(python) for i in range(1, 10): for j in rang…