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

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

AOJ

The Number of Participants

AOJ

参加者数 解き方 コードの説明 ソースコード 参加者数 The Number of Participants | Aizu Online Judge 解き方 各部門の参加者を足すだけ。 コードの説明 入力を空白区切りで分割してリストにする。mapを使いリストの要素を整数に変換してからsum()で要素を…

Rock, Paper, Scissors

AOJ

じゃんけん 解き方 ソースコード コードの補足 じゃんけん Rock, Paper, Scissors | Aizu Online Judge 解き方 5人のじゃんけんの手を入力順にリストに入れる。今回は勝敗の出力は引き分けと勝ち負けの2通りに分けて考えています。 はじめにじゃんけんの結…

English Sentence

AOJ

英語の文章 解き方 コードの説明 ソースコード 別解 関連リンク 英語の文章 問題ページ 解き方 与えられた文字列を単語に分割し、最も出現頻度が高い単語と、最も文字数が多い単語を見つける。 コードの説明 出現頻度はcollectionsのCounter、文字数について…

AOJまとめ

AOJ

Vol. 0-3 Volume0 Vol. 10, 15, 30 Volume10 Vol. 11-13, 16 Volume12 Vol. 20-28 Volume21 Vol. 0-3 Volume0 www.pytry3g.com Vol. 10, 15, 30 Volume10 www.pytry3g.com Vol. 11-13, 16 Volume12 www.pytry3g.com Vol. 20-28 Volume21 www.pytry3g.com

Palindrome

AOJ

回文 解き方 コードの説明 ソースコード 回文 回文 | Aizu Online Judge 解き方 回文をカウントする変数を用意する。文字列が与えられたら、それが対称かどうか確認し回文ならカウントする変数に1を足す。 コードの説明 文字列が回文かどうか確認するにはス…

Calculation of Area

AOJ

坪面積の計算 解き方 ソースコード 坪面積の計算 土地面積 | Aizu Online Judge 解き方 受け取った入力 a, bを掛けてから1坪=3.305785 [m2] で割ると坪面積が求まる。 ソースコード a, b = map(int, input().split()) print((a*b) / 3.305785)

Secret Number

AOJ

暗証番号 解き方 コードの説明 ソースコード 暗証番号 問題ページ 解き方 与えられた入力は半角英数字、記号、空白を含む文字列になっているので、そこから数字を見つけて取り出す。取り出しかたは色々あると思うが、今回は正規表現を使って数字を取り出して…

Volume12

AOJ

1200: Goldbach's Conjecture 1200: Goldbach's Conjecture 解答例

Volume21

AOJ

2100: Saizo 2100: Saizo 解答例

1616: Taro's Shopping

AOJ

太郎君の買い物 解き方 ソースコード(python) 太郎君の買い物 問題ページ① 問題ページ② 解き方 (※この解き方はあまり効率がよくありません。) はじめに、全商品の価格表を受け取ったらソートする。次に二分探索でソートした価格表から最大の金額mに最も…

0337: Japanese Calendar

AOJ

日本の暦 解き方 コードの説明 ソースコード(python) 日本の暦 問題ページ① 問題ページ② 解き方 与えられる暦の種類から西暦または和暦に変換する。 ちなみに、日本の暦は以下の通り。 明治時代 (1868年 ~ 1912年) 大正時代 (1912年 ~ 1926年) 昭和時…

2259: Programming Contest

AOJ

問題A:プログラミングコンテスト 解き方 コードの説明 ソースコード(python) 問題A:プログラミングコンテスト 問題ページ① 問題ページ② 解き方 各参加者の解いた問題数を求めて、最も多く問題を解いている人の解いた問題数を出力するだけ。 コードの説明…

1624: Income Inequality

AOJ

所得格差 解き方 ソースコード(python) 所得格差 問題ページ① 問題ページ② 解き方 n人の所得の平均値を求めてから、n人すべての所得と平均値を比べていく。 ソースコード(python) ans = [] while True: n = int(input()) if n == 0: break a = list(map(…

2881: Change of the Era Name

AOJ

改元 解き方 コードの説明 ソースコード 改元 問題ページ① 問題ページ② 解き方 受け取った入力の年と月から平成または新元号に変換するのかを判断する。 コードの説明 入力をそれぞれ4つの変数g(元号), y(年), m(月), d(日)に割り当てる。 あとはif文を使っ…

3026: ai1333

AOJ

Problem A: ai1333 解き方 コード(python) 関連リンク Problem A: ai1333 問題ページ 解き方 100年ごとにIDの末尾に3を加えればいいので、与えられた入力xを100で割り商を求めてから、求めた商の分だけ3をIDに加える。 コード(python) x = int(inpu…

0641: Pencils

AOJ

鉛筆(Pencils) 解き方 コードの説明 ソースコード(python) 関連リンク 鉛筆(Pencils) 問題ページ 解き方 JOI君はセットXまたはセットYのどちらか一方しか選ぶことができないので、N本の鉛筆を買うときのセットXとセットYの最小値をそれぞれ求める。 コ…

0195: 人気の出店は?

AOJ

What is the most Popular Shop in Tokaichi? 解き方 コードの説明 ソースコード 関連リンク What is the most Popular Shop in Tokaichi? 問題ページ 解き方 一行ごとにひとつの店の午前と午後の販売個数を入力として受け取るので、販売個数を入れる長さが…

0582: Triangle Types

AOJ

問題1 解き方 方針 コードの説明 ソースコード(python) 関連リンク 問題1 問題ページ 解き方 方針 与えられた三辺から三角形が存在するか確認する。 三角形の存在条件は、a + b > c, かつ b + c > a, かつ c + a > b 辺aが最大の辺の長さのとき、直角三…

0105: Book Index

AOJ

本の索引 問題ページ 解き方 語句とページ番号を辞書に登録、語句をアルファベット順に出力し、同時にページ番号も昇順に出力するだけ。 コード(python) d = {} while True: try: data = input().split() except: break word = data[0] number = int(data[1]…

1200: Goldbach's Conjecture

AOJ

Problem A:Goldbach's Conjecture 問題ページ 解き方 求めたい答えは与えられた4以上の偶数あるnに対して、そのnがある2つの素数の和と等しいような素数のペアの数を求めることである。 まず素数を用意しなければいけないので、エラトステネスの篩を使っ…

1601: Short Phrase

AOJ

短句 問題ページ 解き方 単語の並びを5,7,5,7,7の順に区切っていくだけ。 コード(python) p = [5, 7, 5, 7, 7] while True: n = int(input()) if n == 0: break word = [input() for _ in range(n)] flag = False for i in range(len(word)): ip = …

2100: Saizo

AOJ

Problem A:サイゾウ 解き方 コード(python) Problem A:サイゾウ 問題ページ 解き方 与えられたブロックに対して、登らなけらばならない最大の段差と降りなければならない最大の段差を求めるだけ。 コード(python) t = int(input()) for _ in range(t): n = i…

0020: Capitalize

AOJ

大文字変換 解き方 コード(python) 大文字変換 問題ページ 解き方 mapを使って入力を大文字に変換し、joinを使ってmapから変換した文字列を取り出す。 コード(python) print("".join(map(str.upper, input())))

0019: Factorial

AOJ

階乗 解き方 コード(python) 階乗 問題ページ 解き方 mathモジュールのfactorialを使う。 コード(python) import math print(math.factorial(int(input())))

0018: Sorting Five Numbers

AOJ

5つの数の整列 解き方 コード(python) 5つの数の整列 問題ページ 解き方 sortedとスライスを使う。 コード(python) print(*sorted(map(int, input().spilt()))[::-1])

0015: National Budget

AOJ

国家予算 解き方 コード(python) 国家予算 問題ページ 解き方 テストケースではpythonを使うとオーバーフローについて心配する必要はなかったので、 与えられた数の和が80桁を超えればoverflowと出力、そうでなけらばそのまま和を出力するだけ。 コード(py…

0017: Caesar Cipher

AOJ

シーザー暗号 解き方 コード(python) シーザー暗号 問題ページ 解き方 this、that、theのいずれかの単語が必ず含まれているので、どの単語が含まれているのかを見つける。 見つけ出したあとはその単語ともとに復号していく。 コード(python) import string s…

0016: Treasure Hunt

AOJ

宝探し 解き方 コード(python) 宝探し 問題ページ 解き方 mathモジュールのsinとcosを使って求める。 sinとcosにはラジアンを渡す必要があるので、はじめにラジアンを求める。 ラジアンの求め方は角度x(π/180)。最初真っ直ぐ向いているので角度は90度。こ…

0104: Magical Tiles

AOJ

不思議なタイル 問題ページ 解き方 5種類のタイルの情報を辞書に登録しておき、タイルの文字列を読み取り辞書に基づき動くだけ。条件より部屋の外に出ることはないので特に注意することはない。LOOPするかしないかの判定はタイルの枚数より判定する。なぜな…

0014: Integral

AOJ

積分 解き方 コード(python) 積分 問題ページ 解き方 長方形の横の長さが与えられるので、それを基に縦の長さを求めて長方形の面積を求める。 その求めた長方形の面積を足していき、近似的な面接を求める。 コード(python) while True: try: d = int(input()…