2012-10-01から1ヶ月間の記事一覧

パンデジタル数(Pandigital Number)を見つける

問題 Need help with a number theory problem(java) : learnprogramming 3桁の数に3桁の数を足して4桁の数にする式を考える。0〜9までの数字を一度ずつ使ってこの等式を表したとき、3つの数が最小になるような組み合わせはどれか。 http://programmingpraxi…

野球のボールカウント

オフラインリアルタイムどう書く第三回の参考問題 #どう書く #yhpg #勉強会 #Ruby - Qiita 問題 野球のボールカウント・アウトカウントの遷移を計算する。(得点・ランナー・イニング の計算は不要) ただし、ストライク・ボール・ファウル・ヒット・ピッチ…

Pythonでリストをflattenする方法まとめ

参考 1段ネストしたリストをflattenする方法 Making a flat list out of list of lists in Python - Stack Overflow 2段以上ネストしたリストをflattenする方法 Flatten (an irregular) list of lists in Python - Stack Overflow Right Foot In: More on py…

単語の異なる文字の数[9/30/2012] Challenge #102 [intermediate] (n-character-set strings) : dailyprogrammer

[9/30/2012] Challenge #102 [intermediate] (n-character-set strings) : dailyprogrammer 問題 単語sと数nを受け取り、単語の異なる文字の数がn以下の時Trueそれ以外の場合False返す関数。 解答 def ncset(s, n): return len(set(s)) <= n if __name__ == …

余りを取るだけの簡単な問題[10/18/2012] Challenge #104 [Easy] (Powerplant Simulation) : dailyprogrammer

問題 [10/18/2012] Challenge #104 [Easy] (Powerplant Simulation) : dailyprogrammer 日数を取り、3, 14, 100の倍数日ごとに停止する発電所の稼働日数を返す関数を作る。 解答 def plant_online_days(day): online_day = 0 for i in range(1, day+1): if i…

テトリスの揃った列を消す - Bit Tetris

問題 Bit Tetris 〜 横へな 2012.7.25 16進数文字列で表現されたテトリスのフィールドを受け取って揃っている列を消す問題。 解答 zip(*list)が便利すぎる。 def bit_tetris(notation): xbits = notation.split("-") bbits = map(lambda x: bin(int(x, 16))[…

ポーカーの手札から役を特定する

問題 第一回 オフラインリアルタイムどう書くの参考問題 #勉強会 #Ruby #C - Qiita 5枚のカードを示す文字列を入力とし、ポーカーの役を出力せよ。 ただし: 一枚のカードは、スートを表す文字+ランクを表す文字列 で構成される。 スートを表す文字は、S, H,…

三目並べ(Tick Tack Toe)の勝敗を出力

問題 Tick-Tack-Toe 〜 横へな 2012.7.6 文字列形式で入力された先攻後攻の手から勝敗(引き分け)を判断する。 不正な入力は考慮しないが、不正な手(すでに置かれている場所に置こうとする)は考慮する。 解答 def tick_tack_toe(record): record = map(la…

ある表記法に則った画像を回転する問題 - 第2回 オフラインリアルタイムどう書くの参考問題

問題 第2回 オフラインリアルタイムどう書くの参考問題 #勉強会 #どう書く #yhpg #Ruby #C - Qiita ある表記法に則った2値画像データを時計回りに90度回転させてもとの表記に戻す問題。 解答 一行あたりの処理単位がめちゃくちゃだけど、スライシング多用で…

CoffeeScriptでProject Euler #14

Problem14 正の整数に以下の式で繰り返し生成する数列を定義する。 n → n/2 (n が偶数) n → 3n + 1 (n が奇数)13からはじめるとこの数列は以下のようになる。 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 113から1まで10個の項になる。 この数列はどのような…

CoffeeScriptでProject Euler #15

Problem 15 図が付されているのでリンク参照。Problem 15 - PukiWiki Solution fact = (n) -> if n == 1 1 else n * fact(n-1) console.log (fact 40) / (fact 20) / (fact 20) プログラミング的にはどう解けばいいのでしょう。題意が読み取れません。逆路:…

テーブルトークRPGのダイス表記を計算する [9/30/2012] Challenge #102 [easy] (Dice roller) : dailyprogrammer

[9/30/2012] Challenge #102 [easy] (Dice roller) : dailyprogrammer 問題 ダイス表記(dice notation)とは"AdB(+/-)C"という形式の文字列(A,B,Cは数)を受け取って以下の計算を行う記法である。 1からBまでの乱数(B面ダイス)をA回ふって合計する。 1の…

操車場アルゴリズム(Shunting Yard Algorithm)による中置記法の解析 [10/18/2012] Challenge #104 [Hard] (Stack Attack) : dailyprogrammer

[10/18/2012] Challenge #104 [Hard] (Stack Attack) : dailyprogrammer 問題 あのDijkstraが発明した手法だそう。 説明 あなたは邪悪なエンジニアであり、D++という新しい言語を作ろうとしている。これはあなたのお気に入りの計算機科学者にちなんで"Dijkst…

カッコの対応を判定する[10/18/2012] Challenge #104 [Intermediate] (Bracket Racket) : dailyprogrammer

[10/18/2012] Challenge #104 [Intermediate] (Bracket Racket) : dailyprogrammer 問題文 カッコ"()", カギカッコ"[]", 波カッコ"{}", 山カッコ"<>" を含む文字列がちゃんと対応して閉じているか確認する。 入力と出力の形式 入力は文字列、返り値は真偽値…

AOJ 0033 - Ball

問題文はこちら テストインプットを0033.txtから開いているのでそのままでは通らない。 解答 def solve(balls): right, left = [0], [0] while balls: ball = balls.pop(0) if ball > right[-1]: right.append(ball) elif ball > left[-1]: left.append(ball…

n人の中で誕生日が同じ人がいる確率

問題 Birthday Paradox « Programming Praxis 23人いる場合、そこに誕生日が同じ人がいる確率は50%である。57人の場合は99%だ。 これは確率の知識として知られている。 シミュレーションによってこれを確かめよう。 解 うるう年は考慮しない。 from __future…

CoffeeScriptでProject Euler #13

Problem 13 以下の50桁の数字100個の総和の上位10桁を求めよ。 37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 ...省略... 53503534226472524250874054075591789781264330331690省略したリストは…