プログラミングのお題スレ Part22 (863レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
1(4): 2023/08/03(木)13:52 ID:/xW45k0z(1) AAS
プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
省14
3(9): 2023/08/06(日)12:21 ID:/9zIb/V0(1) AAS
お題
1行につき一つの文章が入力されます
アルファベット26文字がすべて含まれている文章をフィルタリングしてください
大文字小文字は区別しません
そのうちもっとも短い文章を出力してください
入力
The quick brown fox jumps over a lazy dog.
省9
8(3): 2023/08/07(月)01:25 ID:dolrRGoi(1/2) AAS
>>6
それなんて言語?
9(58): 9 2023/08/07(月)01:46 ID:PMO8D1QO(1/2) AAS
>>3 Perl5
for (<DATA>) {
my %h = map{$_ => 1} grep{/[a-z]/i} split '';
push @a, $_ if 26 == keys %h;
}
@s = sort{length($a) <=> length($b)} @a;
print $s[0];
省13
17(38): 2023/08/10(木)13:37 ID:YYBOmFjO(1) AAS
>>3
Perl
外部リンク:paiza.io
40(3): 2023/08/15(火)16:29 ID:eu+UdA0l(1) AAS
このサイトより
外部リンク:agora.ex.nii.ac.jp
2023/8/1/0/0 から 2023/8/16/23/0 まで
表示日時を変更しながら1時間毎の静止気象衛星画像(地球)を収集し
(衛星画像 は 可視光 2048x2048 程度 512x512 等も可 起動オプションで指定出来るとボーナス特典)
gif animation または png animation ファイルに変換せよ
例
省3
64(3): 2023/08/24(木)05:04 ID:UkV1PQmo(1) AAS
お題:2Dゲームのスクロール処理
整数の二次元配列(高さ50, 横幅100)上にランダムに整数1〜9が200個配置される。
この配列を高さ20, 横幅40の矩形領域に切り取って表示したい。キーボードの入力(l, r, t, b)で矩形領域を移動させ切り取る領域を変化させよ。
71(3): 2023/08/26(土)20:03 ID:LJcWLtrE(1) AAS
文字列Sの中に含まれる回文をすべて列挙ってどうやったらいいですかね(*_*)
aとかbみたいな一文字でも回文とみなしますです
文字列Sは1文字以上100文字以下で、半角英字であることがわかってます
とんでもない計算量になる気がするのですが、鮮やかなやりかたってないものかと…トホ(ヽ´ω`)
85(5): 2023/09/20(水)14:42 ID:I55f6i4N(1/2) AAS
お題
abc1.mp4 abc2.mp4 .. abc20.mp4があるとします
これを名前順でソートできるようにするため
abc001.mp4 abc002.mp4 ... abc020.mp4
とリネームしてください
101(4): 2023/09/28(木)08:18 ID:q8VwFY1b(1) AAS
お題
文字列S=abcdefghij(10文字)が与えられて
配列[0,4,7]が与えられる
このときSの0番目を4番目、4番目を7番目、7番目を0番目に移動した文字列を出力するプログラムを書いてください
111(5): 2023/09/30(土)17:32 ID:xxjzuZuq(1) AAS
お題
文字列が入力されます
赤と緑を入れ替えて
黒と白を入れ替えて
黄と青を入れ替えてください
例
入力: 緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ
省1
127(4): 2023/10/14(土)00:00 ID:sMwx6jpS(1) AAS
お題:角カッコの列が入力されるのでカッコの対応が取れていたら1,取れていなかったら0と表示せよ
< [[]]
> 1
< [[]
> 0
134(3): 2023/10/18(水)20:40 ID:4ifgnZXl(1/4) AAS
お題:Pythonのmath.ulp()と同機能の関数
引数が正規化数限定のサブセットでも可(その旨を明記)。
Pythonで実装する場合は(もちろん)math.ulp()を使ってはならない。
156(10): 2023/11/25(土)20:07 ID:zpqT0hBE(1) AAS
お題:ランダムに1から9999までの整数を得た時、何回で全種類出揃うか確認せよ
擬似乱数列生成法については指定しないものとする
ruby
外部リンク:ideone.com
require 'set'
r = 1..9999
c = r.to_a.fill(0)
省9
171(5): 2023/11/30(木)06:46 ID:/rzYr39l(1) AAS
お題:英字の羅列された文字列が与えられる。この文字列を分析して数字列を出力せよ。数字の表記ルールは、その文字の両隣の文字がASCIIコードにおける奇数だったら1、そうでなければ0.
179(6): 2023/12/13(水)09:27 ID:NbIWTS6w(1) AAS
お題
ビールの空きビンをN本集めると新品のビール1本と交換してもらえる
あなたが新品のビールをP本持っている
そのとき、あなたが飲めるビールはR本である
N, Pを引数としてRを返す関数を定義してください
187(17): 2024/01/16(火)00:33 ID:n8j0XaXx(1) AAS
お題:時刻の文字列が与えられる。その時刻から1秒後の時刻を出力せよ。
例
入力:00:00:00
出力:00:00:01
入力:23:59:59
出力:00:00:00
206(23): 2024/02/02(金)06:41 ID:CC6U77IS(1) AAS
お題
入力データをグループ分けして出力せよ
入力データの、= の左右は同じグループである。
出力する順番は、入力データの出現順とする
UnionFind を使えば良いかも
入力データ
["a1=a2", "b1=b2", "b3=b2", "c1=c2", "e1=e2",
省10
234(27): 2024/02/14(水)09:32 ID:JjlrBdlD(1) AAS
お題:数値が入力されるのでその数値に最も近い回分数を出力せよ
回分数とは回分になっている数(負数含まず)のことである
最も近い回分数が2つある場合は2つとも出力せよ
入力 0
出力 0
入力 17
出力 22
省3
249(3): 2024/02/17(土)20:00 ID:k6cg1rdP(1) AAS
>>234
>>239のC#版
外部リンク:ideone.com
Julia版
外部リンク:ideone.com
266(3): 2024/02/21(水)13:54 ID:ve9Dz9D8(1) AAS
>>264
私は解答は提出していないが、ざっくりと自分が思いついた方法
まず、以下のような操作を考える
A. 1234という入力に対して1234321を返す
B. 1234という入力に対して12344321を返す
ここで、xという入力に対してA,Bが返す数をA(x),B(x)と表すことにする
次に、与えられた数の桁数で場合分け
省20
282(16): ◆QZaw55cn4c 2024/02/24(土)14:25 ID:NZEL8Kud(1) AAS
異なる自然数 a, b (a > b) における a^3 - b^3 を「a, b の三乗差」と呼ぶことにする。
異なる5通りの組(a, b) (c, d) ... (j, k) について三乗差がすべて相等しいとき
その組(a, b)...(j, k) および三乗差自体を求めよ
異なる6通りの組で三乗差が相等しい場合があるかも検討せよ
296(4): 2024/03/01(金)22:22 ID:6k2oCbjk(1/3) AAS
>>282
C++
外部リンク:ideone.com
>>294はa, bの二重ループ内でa³ − b³をD = 5001で割った余りrにより区分していたが、
rのループ内でa, bを変化させるように変更したら、2次元配列がなくなってすっきりした。
その結果、メモリ使用量が激減し、nが大きい場合でも実行できるようになった。
301(3): 2024/03/06(水)22:35 ID:lIZep5aT(1) AAS
>>282
C++
外部リンク:ideone.com
>>300の実行時間を分析すると、最も時間が掛かっているのは46〜と47行目だと判明した。
そこで配列ABの第1次元と第2次元を入れ替えてみると、n = 5000では変わらないが、
1万, 2万, 5万, 10万, 20万では35%前後高速になった。これは、改良前には第2次元の添字が
小さい要素に書き込みが集中しているため、改良後のように第1次元に入れ替えた方が
省8
304(6): 2024/03/09(土)22:47 ID:v99WCN19(1) AAS
お題
460円 580円 600円 の3種類の商品があります
これらを組み合わせて合計10個買ったら5360円になりました
組み合わせを求めるプログラムを書いてください
ちなみに答えの一つは
・600円×2
・580円×4
省3
321(3): 2024/04/13(土)23:01 ID:wFZkrOeZ(1) AAS
>>319
外部リンク:ideone.com
ヘロンが作ったもう1つの式である平方根を加算と除算の繰り返しで求める式も使用。
sqrt関数を呼び出すより実行形式ファイルサイズがほんの少しだけ小さくなる。
343(3): 17 2024/05/14(火)05:34 ID:ou5vbzLn(1) AAS
じゃあ10年前のこのお題(URLを書くとNGになるようなので書かない)。
プログラミングのお題スレ Part4
115 :デフォルトの名無しさん:2014/06/21(土) 18:36:45.72 ID:/fMJIWig.net
お題:文字列Aを1回以上繰り返した文字列Bが与えられたとき
文字列Aを求める。ただしAの候補が複数ある場合は最短のものとする。
例
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> a
省2
348(5): 2024/06/01(土)10:16 ID:hzaQXY32(1/2) AAS
お題: コロン区切りの時分秒の時刻が与えられるので時分秒をそれぞれ掛け算した結果を表示せよ
例:
04:05:06
120
349(4): 2024/06/01(土)11:08 ID:hzaQXY32(2/2) AAS
お題: バイト列が与えられる。先頭から解析した場合にバイトが1だったら次の4バイトを読み込んで整数として出力し、バイトが2だったら次のバイトを0が来るまで読み込んで文字列として出力せよ
入力
1 1 0 0 0 2 65 66 67 0 1 128 0 0 0
出力
1ABC128
356(3): 2024/06/07(金)06:27 ID:ZJzD8UbY(1) AAS
お題:引数sとnを取りシーザー暗号化を行う関数を作れ
sは平文、nはずらす文字数(負数可)、返り値は暗号化後の文字列
同様の関数で「Hello, World!」を暗号化し復号化せよ
363(3): 9 2024/06/13(木)14:34 ID:XgNTPGgf(1/3) AAS
>>349
> 「バイトが1だったら次の4バイトを読み込んで整数として出力し、」
正直、意味がわからんかった
例で見ると
1 1 0 0 0 → 1
1 128 0 0 0 → 128
ということだが
省1
404(3): 2024/08/20(火)15:28 ID:YrWgN0+y(1) AAS
お題:今日、または任意の日付から、もういくつ寝るとお正月かを求めよ。(昼寝は除く)
416(4): 2024/09/03(火)07:13 ID:1bP400Ev(1) AAS
お題
引数aから引数bまでの数列を返す関数がある。この関数を数列にゾロ目が含まれていた場合に空の数列を返すように実装せよ
427(3): 2024/10/08(火)17:17 ID:CS1PHEoT(1) AAS
お題:文字列を中央寄せする関数を作れ。
関数は文字列、全体の横幅(整数)、余白を埋める文字、を引数に取る。横幅分の文字列を引数の文字で作成し、その中央に引数の文字列を埋め込み戻り値として返せ。
435(3): 2024/10/09(水)01:45 ID:YvVjSPhZ(2/2) AAS
頑張って読んだけどこのままでは多分スレチ、ずっと条件を簡単にして出題し直してみる。
お題
勇者(HP1000)対魔王(HP5000)、先鋒勇者、サイコロ(目は1から6)を振って出た目だけ相手にダメージを与えられ、交互に攻撃しHP0となったら負け。魔王のサイコロは1個だけど勇者のサイコロはN個(N=1~10)の時の勇者の勝率を求めよ。
438(10): 2024/10/11(金)05:53 ID:EzY86rdr(1/2) AAS
お題:文字列の中で1つ以上連続している空白をすべて空白4つに置換せよ。ただし正規表現は使ってはならない。
例:
"abc def ghi" -> "abc def ghi"
449(3): 2024/12/31(火)22:33 ID:5KitXLte(1) AAS
ベクターにあるこれを解いてくれ
昔2ch、5chスレでやってたができず
いまだと4x4はパワーで行けるとおもうが
4x4盤タイルゲーム for Windows
対戦するたびに学習して次第に強くなる「最善手探索+対戦学習型知能ゲーム」
464(9): 01/03(金)13:22 ID:dEYOS8Dq(1/2) AAS
お題
AのあとにAと同じ数だけBが続く言語エビがあるとします
文字列が入力されたときそれがエビ言語であるか判定するプログラムを作成してください
→ true
A → false
B → false
AB → true
省4
474(4): 01/04(土)21:19 ID:uiECOsgP(2/2) AAS
お題
貨幣・銀行券を次の文字列で表すとします
(1)
(5)
(10)
(50)
(100)
省16
485(20): 01/22(水)21:35 ID:JtEnwxKE(1) AAS
お題
文字列と長さを入力として受け取り
デカルト積のリストを出力してください
入力:ABC 1
出力:[A, B, C]
入力:ABC 2
出力:[AA, AB, AC, BA, BB, BC, CA, CB, CC]
省2
500(11): 01/27(月)09:16 ID:rqFJtGlJ(1) AAS
お題
入力された文字列から重複する文字を抽出してください
T →
CG →
ATA → A
CGGA → G
ATGAT → AT
省5
510(21): 01/30(木)21:27 ID:te1+SH0T(1) AAS
お題
ソース文字列と検索文字列が入力されます
検索文字列の文字をすべて含むソース文字列の部分文字列のうち
一番短い部分文字列を出力してください
DHBICEJAFG EIC → ICE
FDGJHCBIEA EIC → CBIE
FBHDCIJGEA EIC → CIJGE
省5
537(3): 9 02/07(金)21:20 ID:dMuAEB5V(1/4) AAS
>510 Perl5
外部リンク:ideone.com
561(15): 02/11(火)10:54 ID:E5oVpL7o(1/5) AAS
お題
数列が入力されます
ニ番目に小さい数を出力してください
入力:4, 5, 1, 7, 1, 2, 8, 9, 2, 7
出力:2
594(7): 02/13(木)12:04 ID:KGk2Z9bM(1) AAS
お題:ランダムな数列から任意の並んでいる二つの数同士を足して、その二つの数の間に挿入せよ。
その新しい数が一桁ならそのまま挿入し二桁なら桁同士を足してその二桁の間に挿入せよ。
< 123456789 3 4
> 1237456789
(3+4=7)
< 123456789 6 7
> 123456143789
省1
608(10): 02/14(金)23:42 ID:PVqLPxMJ(1) AAS
お題:ランダムな英文字列が与えられる。隣り合う英文字が同じ大文字だった場合、その間にその大文字の小文字を挿入せよ
In < abcDDefGG
Out > abcDdDefGgG
621(3): 02/15(土)21:06 ID:rssRTGdz(3/9) AAS
>>561
C++
外部リンク:ideone.com
C#のヌル許容型と同じ挙動のnullable型を自作し、>>593のC#のmin2関数をジェネリック化、
ポインタ参照化して移植した。
外部リンク:ideone.com
593のC++のmin2関数と実行速度を比較する¹と30%ほど遅い。文字列型や可変長数値型と
省3
640(10): 02/17(月)13:08 ID:lz3iaMcC(1) AAS
お題:ランダムな数列が与えられる。隣り合う数字が偶数同士の時、あいだに0を。奇数同士の時は1を挿入し、それ以外は何も挿入しない
In < 123346
Out > 12313406
656(5): 02/26(水)21:33 ID:rkiIsmEI(1) AAS
お題: Python の int.bit_count()
65535 → 16
15 → 4
6 → 2
1 → 1
0 → 0
-1 → 1
省3
670(6): 03/13(木)20:35 ID:QP/8WHEA(1) AAS
お題:数列が入力される。元の数列に逆順にした数列を減算したときの値を出力せよ
In < 12345
OUt > -41976 (12345 - 54321)
680(5): 03/16(日)23:01 ID:6JX6mCC/(1) AAS
お題:36桁以下の負でない整数で16進表記が10進表記の部分文字列であるものをすべて求めて下さい。
(例)
・1の16進表記1は10進表記1の部分文字列です
・123の16進表記7Bは10進表記123の部分文字列ではありません
・357440の16進表記57440は10進表記357440の部分文字列です
※遅い言語では15桁以下で解いても構いません
685(4): 03/18(火)21:39 ID:9hwr8+MV(1) AAS
>>683
14桁と15桁には該当値がないので、そこに列挙された数に0を追加した72個が15桁以下の答で
結果的には合っているよ。
出題時に作ったC++プログラムはideoneで36桁以下を0.43秒で完了した。これをPowerShellに
移植したプログラムは15桁以下を0.5秒未満、36桁以下を数分で完了した。
その後、改良したC++プログラムではideoneで36桁以下を0.23秒に短縮できた。
693(3): 03/19(水)22:39 ID:P0JLFopv(1/2) AAS
お題:単位分数のエジプト風分解(2進数風味)
1/aを、1/a=1/b+c/dを満たす1/bとc/dに分解する。
aは1以上の整数とする。
c, dは整数とし、bは2の整べき乗(1, 2, 4,...)とする。
c/dは絶対値が最小である事(負数であってもよい)。
例:
1/3→1/4+1/12 : b=4, c=1, d=12
省4
697(6): 03/21(金)12:56 ID:CgJbZEAu(1/2) AAS
AA省
698(4): 03/21(金)12:58 ID:CgJbZEAu(2/2) AAS
>>697
// 略記
fn pow16(x: u32) -> i128 { 16_i128.pow(x) }
fn pow10(x: u32) -> i128 { 10_i128.pow(x) }
// 結果検証
fn main() {
let answer = odai_680();
省13
700(4): 03/23(日)23:00 ID:pi1bImlR(1) AAS
>>680から1週間経ったので解答例を掲載
>>685を書いたときに作ってあった2つのC++プログラム
外部リンク:ideone.com
外部リンク:ideone.com
1番目ではsolve関数の再帰呼び出しの対象とするx[p]の下限と上限を線形探索するが、
2番目では二分探索する。要素数10では二分探索の効果は薄いと思いきや、大分速くなった。
2番目を読み返していたらバグを発見してしまった。i = N - 1のとき63行目のa[i + 1]はa[N]となり
省8
712(4): 03/28(金)21:33 ID:VDfNaTNz(1/3) AAS
お題:素因数の総和が2025である2000万以下の自然数をすべて求めて下さい。
例)
32272
素因数分解すると32272 = 2 × 2 × 2 × 2 × 2017で、
素因数の総和は2 + 2 + 2 + 2 + 2017 = 2025となります。
※20億以下でもC++で5秒以内に余裕で完了できますが、出力が長すぎるため2000万以下としました。
その結果、Rでも5秒以内に余裕で完了できる問題になりました。
714(4): 03/28(金)22:12 ID:g08AymBh(1) AAS
お題
AさんがBさんに惚れてることを
A-B
と表します
両思いのペアを出力してください
入力
D-L,U-X,U-Y,U-R,Z-B,B-E,B-M,B-N,V-H,V-X,W-F,W-R,R-B,R-W,O-W,O-S,F-A,Q-X,P-E,P-L,X-X,Y-M,Y-C,L-U,L-V,I-X,E-B,H-M,A-S
省3
718(5): 03/30(日)01:28 ID:KrBJAiIU(1) AAS
お題:1〜10までの範囲の乱数生成をn回行ったとき出た値の積が20の倍数になる確率Pnを出力せよ
n=2
2, 10 ... 20
4, 5 ... 20
Pn=???
n=3
2, 5, 2 ... 20
省2
738(7): 04/08(火)23:28 ID:OzdBhfzQ(1/2) AAS
AA省
739(3): 04/08(火)23:30 ID:OzdBhfzQ(2/2) AAS
AA省
741(4): 04/09(水)22:22 ID:Ip5PiQSs(1/3) AAS
>>738-739
出題時に作成した解答例
C++
外部リンク:ideone.com
R
外部リンク:ideone.com
と解の個数と最小値・最大値が一致するので正解だろう。
省3
750(3): 04/11(金)07:38 ID:oaeJuxMT(1) AAS
AA省
771(22): 07/25(金)12:30 ID:CjDQVF2B(1) AAS
【問題】
整数のリストが与えられたとき、そのリストを昇順に安定ソートした時の各要素のインデクス(0開始)を対応させたリストを作成せよ
【例】
入力: 1 100 10 10000 1000
出力: 0 2 1 4 3
入力: 3 1 4 1 5 9 2
出力: 3 0 4 1 5 6 2
省3
799(20): 08/16(土)01:44 ID:VU+jlz0U(1/2) AAS
【問題A】
1~9を1つずつ使用して表される9桁の数Anは全部で9!(=362880)個存在する。
整数n(1≦n≦362880)が与えられたとき、n番目に小さいAnを求めよ。
(例)
1 → 123456789
2 → 123456798
3 → 123456879
省14
802(3): 08/16(土)20:29 ID:kN4EEg8M(2/3) AAS
>>799 の問題B
R
外部リンク:ideone.com
C++
外部リンク:ideone.com
812(5): 08/21(木)23:15 ID:0KQ1xtxb(1) AAS
>>799 の逆変換プログラム
R
外部リンク:ideone.com
C++
外部リンク:ideone.com
問題A, 問題Bとは違って、順列に出現するユニークな整数は1〜nの連番でなくても良いし、
出現回数はすべて同じでなくても良い。例えば、入力は [3, 1, 4, 1, 5, 9] でも良い
省1
845(15): 09/13(土)12:21 ID:nVmVuqdT(1) AAS
退屈そうだからちょっと難易度高め
【問題】
各桁の数が1~5のいずれかで全ての桁の合計がMとなる正整数の集合をG[M]で表す。
例えば123、111111はG[6]の要素、255、222222はG[12]の要素となる。
整数M(1≦M≦32)、N(1≦N)が与えられたとき、N番目に小さいG[M]の要素を求めよ。
ただしNがG[M]の要素数より大きい場合の出力は0とする。
求める数値は文字列または各桁の数の配列による表現も可能とする(123⇔"123"⇔[1,2,3])。
省22
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.066s