pontz_rwのブログ

プログラミング等の備忘録

AOJ

ITP1_9_D: Transformation

文字列変換 | プログラミング入門 | Aizu Online Judge 文字列操作に関する問題 解答 入力値を分割する際の要素数や、文字列操作する際のインデックスに注意します。 # coding: utf-8 str = input() q = int(input()) for _ in range(q): line = input().spl…

ITP1_9_C: Card Game

カードゲーム | プログラミング入門 | Aizu Online Judge 解答 # coding: utf-8 n = int(input()) t = 0 h = 0 for _ in range(n): tc, hc = input().split() if tc > hc: t += 3 elif tc < hc: h += 3 else: t += 1 h += 1 print(t, h)

ITP1_9_B: Shuffle

シャッフル | プログラミング入門 | Aizu Online Judge 文字列の切り取り、結合に関する問題 解答 インデックスに気を付けて文字列を操作します。 # coding: utf-8 while True: cards = input() if cards == '-': break m = int(input()) for i in range(m):…

ITP1_9_A: Finding a Word

単語の検索 | プログラミング入門 | Aizu Online Judge 指定された単語の数を出力する問題 解答 count()を使用することで、リスト内の指定の値を持つ要素の数を取得することができます。 # coding: utf-8 count = 0 W = input().lower() while True: T = inp…

ITP1_8_D: Ring

リング | プログラミング入門 | Aizu Online Judge 指定した文字列が含まれるかどうか判定する問題 解答1. 入力値を2倍 入力値と同じ内容の文字列を加えます。 inを使用し、文字列に指定した値があるかどうかを調べます。 # coding: utf-8 s = input() p = i…

ITP1_8_C: Counting Characters

文字のカウント | プログラミング入門 | Aizu Online Judge アルファベットの数を数える問題 解答 まずアルファベットのaからzまでを含んだ文字列を用意します。 入力値は、終了条件が指定されていないため、例外をキャッチしたタイミングで入力値を受け取る…

ITP1_8_B: Sum of Numbers

数字の和 | プログラミング入門 | Aizu Online Judge 文字列操作に関する問題 1. 入力を文字列として受け取った場合 map()を使用し、受け取った文字列を1文字ずつ整数型に変換し、その合計を出力します。 # coding: utf-8 while True: line = input() if lin…

ITP1_8_A: Toggling Cases

小文字と大文字の変換 | プログラミング入門 | Aizu Online Judge 文字列操作に関する問題 1. swapcase()を使う場合 swapcase()を使用することで、大文字を小文字に、小文字を大文字に変換することができます。 print(input().swapcase()) 2. islower()、も…

ITP1_7_D: Matrix Multiplication

行列の積 | プログラミング入門 | Aizu Online Judge 行列, の積を求める問題 行列の各要素は行列の行目の各要素と、行列の列目の各要素の積を合計したものです。 行列の行列を入れ替えた転置行列を用意すれば、行同士の演算で行列が求められます。 行列, を…

ITP1_7_C: Spreadsheet

表計算 | プログラミング入門 | Aizu Online Judge 行列に関する問題 はじめに、r × c の表を作成します。 次に、各行の合計をappend()を使用してmatrixの各行の最後に結合し、 r × (c + 1) の表を作成します。 そして、各列の合計をzip()を使用して、matrix…

ITP1_7_B: How many ways?

組み合わせの数 | プログラミング入門 | Aizu Online Judge] 組み合わせの数を求める問題 選ぶ3つの数をa, b, c (a < b < c) とすると、以下の条件を満たします。 aは合計値xを3で割った数より小さい (a < x / 3) bは、合計値xからaを引いた数を2で割った数…

ITP1_7_A: Grading

成績の判定 | プログラミング入門 | Aizu Online Judge 複数の条件分岐がある問題 条件分岐の順番に気を付ければ溶ける問題です。 解答 while True: m, f, r = map(int, input().split()) score = m + f if m == f == r == -1: break elif m == -1 or f == -…

ITP1_6_D: Matrix Vector Multiplication

行列とベクトルの積 | プログラミング入門 | Aizu Online Judge ベクトルと行列の積についての問題 この式に沿って問題を解いていきます。 解答1 n, m = map(int, input().split()) A = [] b = [] # 行列Aに要素を追加 for i in range(n): A.append([int(s) …

ITP1_6_C: Official House

公舎 | プログラミング入門 | Aizu Online Judge 配列に関する問題 多次元配列を利用します。 解答 houses = [[[0 for r in range(10)] for f in range(3)] for b in range(4)] n = int(input()) for i in range(n): b, f, r, v = map(int, input().split())…

ITP1_6_B: Finding Missing Cards

なくなったカードの発見 | プログラミング入門 | Aizu Online Judge 不足しているカードを指定された順序で表示する問題 トランプのリストを用意しておき、指定されたカードをフラグで管理するか、取り除くかします。 解答1 # トランプの生成 cards = [ "{} …

ITP1_6_A: Reversing Numbers

数列の反転 | プログラミング入門 | Aizu Online Judge リストを逆順にする問題 解答1 reverse()を使用してリストを逆順にしています。 input() list = input().split() list.reverse() print(" ".join(list)) 解答2 リストに対して[::-1]を指定することで逆…

ITP1_5_D: Structured Programming

構造化プログラミング | プログラミング入門 | Aizu Online Judge プログラムを書き直す問題 3の倍数であるか、剰余が3か0になるまで10で割り続け、3である場合に、その数字を出力します。 解答1 *演算子を使用し、リストやタプルから引数をアンパックします…

ITP1_5_C: Print a Chessboard

チェック柄の描画 | プログラミング入門 | Aizu Online Judge 繰り返し構文を用いて2種類の文字列を出力する問題 現在の行と列の番号の合計が奇数か偶数かで出力する文字列が変わります。 解答1 while True: H, W = map(int, input().split()) if H == W == …

ITP1_5_B: Print a Frame

フレームの描画 | プログラミング入門 | Aizu Online Judge 繰り返し構文を用いて2種類の文字列を出力する問題 四角形の枠と中身とで条件分岐させます。 枠を出力するのは、最初と最後の行と、そのほかの行の最初と最後の列です。 解答1 while True: H, W = …

ITP1_5_A: Print a Rectangle

長方形の描画 | プログラミング入門 | Aizu Online Judge 繰り返し構文を利用した文字列の出力をする問題 指定された行列分、文字列の出力を繰り返します。 列が進むたびに'#'を出力し、行が進むたびに改行を行います。 解答1 while True: H, W = map(int, i…

ITP1_4_D: Min, Max and Sum

最小値, 最大値, 合計値 | プログラミング入門 | Aizu Online Judge 最小値、最大値、合計値を求める問題 最小値、最大値については、順次比較をし、入れ替えるかどうかを条件分岐させます。 最大値は、順次加算していきます。 解答1 n = int(input()) line …

ITP1_4_C: Simple Calculator

単純計算器 | プログラミング入門 | Aizu Online Judge 入力値から数値と演算子を読み込み計算する問題 解答1 while True: line = input().split() a = int(line[0]) op = line[1] b = int(line[2]) if op == '+': print(a + b) elif op == '-': print(a - b…

ITP1_4_B: Circle

円 | プログラミング入門 | Aizu Online Judge 円の面積と円周を求める問題 円周率はmathモジュールの中に、piとして定義されています。 import mathを記述してモジュールを取り込みます。 math.pyと記述し、mathモジュールの中のpiを利用します。 解答 impo…

ITP1_4_A: A / B Problem

A / B 問題 | プログラミング入門 | Aizu Online Judge 割り算の問題 python3では、割り算に関して以下の三つの形式があります。 /は、除算をし浮動小数点数を返します。 //は、除算をし小数部を切り捨てて整数を返します。 %は、剰余を返します。 解答 a, b…

ITP1_3_D: How Many Divisors?

約数の数 | プログラミング入門 | Aizu Online Judge 約数の個数を求める問題 aからbまでの間繰り返すのにrange()を利用します。 cの約数であるということは、cで割ったときの余りが0であることに等しいので、その個数を記録します。 解答 a, b, c = map(int…

ITP1_3_C: Swapping Two Numbers

2つの数の交換 | プログラミング入門 | Aizu Online Judge 複数の入力値を比較し入れ替えて出力する問題 a > bとそれ以外の場合とで条件を分岐して出力します。 解答1 while True: a, b = map(int, input().split()) if a == 0 and b == 0: break elif a < …

ITP1_3_B: Print Test Cases

テストケースの出力 | プログラミング入門 | Aizu Online Judge 複数の入力データを処理する問題 入力値が0の場合に繰り返し構文から抜けます。 解答1 i = 1 while True: x = int(input()) if x == 0: break print("Case {}: {}".format(i, n)) i += 1 解答2…

ITP1_3_A: Print Many Hello World

複数のHello World | プログラミング入門 | Aizu Online Judge 繰り返しに関する問題 for文とrange()を使用します。 range()は指定した条件に従ってリストオブジェクトを作成して返してくれます。 range(1000)と記述した場合、リスト[0, 1, ... ,999]が返さ…

ITP1_2_D: Circle in a Rectangle

長方形の中の円 | プログラミング入門 | Aizu Online Judge 比較の問題 条件は、頂点(0, 0)と頂点(W, H)からなる長方形の中に円が含まれるかどうかです。 頂点(x, y)、頂点(W, H)と円の中心と半径との関係を考えます。頂点(x, y)と、円の中心と半径との関係…

ITP1_2_C: Sorting Three Numbers

3つの数の整列 | プログラミング入門 | Aizu Online Judge 昇順に並べ替える問題 リストを昇順にソートするにはsort()、もしくはsorted()を使用します。 sort()はリストの本体自体を変更します。対して、sorted()は整列されたリストを返すため、元のリストは…