プログラミングのお題スレ Part22 (859レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
41: デフォルトの名無しさん [sage] 2023/08/15(火) 23:36:55.46 ID:GhE5EH0z(1) AAS
蟻人間がコテハン外したのかな
121(1): 9 [sage] 2023/10/08(日) 20:24:03.46 ID:zYJ3wh+h(1) AAS
>>120120(1): デフォルトの名無しさん [sage] 2023/10/08(日) 19:28:55.20 ID:faQf3SiN(1) AAS
お題:n階建てのビルに定員4人のエレベーターがある。エレベーターは各階でボタンが押されるとその階に向かう。住人達はエレベータを呼んで乗るとエレベーター内で次に向かう階へのボタンを押す。ボタンを押すのは乗員全員である。乗るのを待っている住人が定員より多かった場合、エレベーターは乗れなかった住人を優先的に回収する。住人は列の先頭から順番にエレベーターに乗り込む。エレベーターは乗員を降ろしている間に住人を追加で乗せることはなく、すべての乗員を降ろしてから次の住人の回収に向かうものとする。
もっとも効率がいいエレベーターの停止順序を求め、入力に対して停止階のリストを出力せよ。
エレベーターの初期位置は1階とする。
入力
階数
乗員数 住人たちがいる階 乗員iが向かう階 乗員iが向かう階 …
5
1 1 5
2 4 3 2
3 2 1 3 5
出力
停止階 停止階 …
1 5 4 3 2 1 3 5
入力
10
5 1 1 2 3 4 4
9 4 10 10 10 1 8 6 6 6 5
出力
1 2 3 4 1 4 1 10 4 6 8 4 5
「もっとも効率がいいエレベーターの停止順序」とは?
1.停止回数がもっとも少ない
2.移動した階数の和が最も小さい
3.ほか
など、どのような指標?
215(1): デフォルトの名無しさん [] 2024/02/03(土) 10:26:51.46 ID:kmOXhk/V(1) AAS
>>206206(23): デフォルトの名無しさん [] 2024/02/02(金) 06:41:15.23 ID:CC6U77IS(1) AAS
お題
入力データをグループ分けして出力せよ
入力データの、= の左右は同じグループである。
出力する順番は、入力データの出現順とする
UnionFind を使えば良いかも
入力データ
["a1=a2", "b1=b2", "b3=b2", "c1=c2", "e1=e2",
"a3=a4", "c3=c4", "e1=e3", "a2=a4", "c3=c1",
"b3=a4", "c2=d1", "a4=a5", "d2=c1", "b4=b3", "d3=c3"]
出力
[["a1", "a2", "b1", "b2", "b3", "a3", "a4", "a5", "b4"],
["c1", "c2", "c3", "c4", "d1", "d2", "d3"],
["e1", "e2", "e3"]]
Ruby で、UnionFind を自作してみた。
下はユニットテストです
外部リンク:paiza.io
外部リンク:paiza.io
>>213Rでもっと短く書けた。
外部リンク:ideone.com
344: デフォルトの名無しさん [sage] 2024/05/14(火) 17:27:18.46 ID:AXiunB2g(1) AAS
外部リンク:ideone.com
Z-algorithm を使って O(|B|) で解いてみた
387: デフォルトの名無しさん [sage] 2024/08/03(土) 21:50:20.46 ID:VMb0ie+F(2/2) AAS
>>386二直線の交点は連立方程式を解けば良くて行列を使えば簡単だけど、どういう回答が求められてるのかが分からず途方に暮れております
477: デフォルトの名無しさん [sage] 2025/01/05(日) 21:35:39.46 ID:6Z+55hA8(1) AAS
>>474474(4): デフォルトの名無しさん [] 2025/01/04(土) 21:19:41.74 ID:uiECOsgP(2/2) AAS
お題
貨幣・銀行券を次の文字列で表すとします
(1)
(5)
(10)
(50)
(100)
(500)
[1000]
[5000]
[10000]
貨幣・銀行券がランダムに次のような文字列で与えられます
(100)(10)(1)[10000](5)(500)[1000][5000][1000][1000](10)(100)(50)(100)[1000]
与えられた貨幣・銀行券を分類して貨幣・銀行券の価値が高い順に次のように出力するプログラムを作成してください
[10000]
[5000]
[1000][1000][1000][1000]
(500)
(100)(100)(100)
(50)
(10)(10)
(5)
(1)
ruby
外部リンク:ideone.com
491: 9 [sage] 2025/01/24(金) 01:44:22.46 ID:p08ruAfw(1) AAS
>>485485(20): デフォルトの名無しさん [] 2025/01/22(水) 21:35:12.82 ID:JtEnwxKE(1) AAS
お題
文字列と長さを入力として受け取り
デカルト積のリストを出力してください
入力:ABC 1
出力:[A, B, C]
入力:ABC 2
出力:[AA, AB, AC, BA, BB, BC, CA, CB, CC]
入力:ABC 3
出力:[AAA, AAB, AAC, ABA, ABB, ABC, ACA, ACB, ACC, BAA, BAB, BAC, BBA, BBB, BBC, BCA, BCB, BCC, CAA, CAB, CAC, CBA, CBB, CBC, CCA, CCB, CCC]
Perl5
for $n (1..3) {
@cp = @s = qw(A B C);
while(--$n) { @cp = map{ $p = $_; map{ "$p$_" } @s } @cp }
print "@cp\n";
}
※見易くするためインデントは全角スペースに置換してあります
実行結果
~ $ perl 22_485_CartesianProd.pl
A B C
AA AB AC BA BB BC CA CB CC
AAA AAB AAC ABA ABB ABC ACA ACB ACC BAA BAB BAC BBA BBB BBC BCA BCB BCC CAA CAB CAC CBA CBB CBC CCA CCB CCC
519(1): デフォルトの名無しさん [sage] 2025/01/31(金) 22:17:10.46 ID:bHXxdIdo(1) AAS
>>510510(21): デフォルトの名無しさん [] 2025/01/30(木) 21:27:24.39 ID:te1+SH0T(1) AAS
お題
ソース文字列と検索文字列が入力されます
検索文字列の文字をすべて含むソース文字列の部分文字列のうち
一番短い部分文字列を出力してください
DHBICEJAFG EIC → ICE
FDGJHCBIEA EIC → CBIE
FBHDCIJGEA EIC → CIJGE
JDIBGHCEAF EIC → IBGHCE
JBCIAGDHEF EIC → CIAGDHE
EJFBCAGIHD EIC → EJFBCAGI
IADCGJFBEH EIC → IADCGJFBE
IDFHBJGAEC EIC → IDFHBJGAEC
c
外部リンク:ideone.com
539: 9 [sage] 2025/02/07(金) 23:00:25.46 ID:dMuAEB5V(2/4) AAS
>>537しくった、これ一番短い範囲ではなく間違って一番長い範囲を検出してる。
サンプルデータではたまたま同じ解になるようで、間違いを見落としてしまった。
それから、一番長い(短いにすべきだったが)範囲の検索にわざわざ候補listをsortして[0]番目を
取得しているが無駄だし規模が大きくなると効率よくない
時間あったら直しますわ〜
758: デフォルトの名無しさん [sage] 2025/04/13(日) 23:53:41.46 ID:fz+Jdq57(1) AAS
配列にするとどうかね
822: デフォルトの名無しさん [sage] 2025/08/27(水) 00:40:48.46 ID:AbNZa8yo(1/2) AAS
>>799799(20): デフォルトの名無しさん [sage] 2025/08/16(土) 01:44:59.97 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
123456 → 416589732
234567 → 684753219
362880 → 987654321
【問題B】
1~4を3つずつ使用して表される12桁の数Bnは全部で12!/(3!)^4(=369600)個存在する。
整数n(1≦n≦369600)が与えられたとき、n番目に小さいBnを求めよ。
(例)
1 → 111222333444
2 → 111222334344
3 → 111222334434
123456 → 222331434114
234567 → 324424331112
369600 → 444333222111
※求める数値は文字列または各桁の数の配列による表現も可能とする(123⇔"123"⇔[1,2,3])
ocaml
外部リンク:ideone.com
>>799 scheme (chicken 4.13)
外部リンク:ideone.com
844: デフォルトの名無しさん [sage] 2025/09/12(金) 20:36:05.46 ID:I2wrB793(1) AAS
>>438438(10): デフォルトの名無しさん [sage] 2024/10/11(金) 05:53:27.29 ID:EzY86rdr(1/2) AAS
お題:文字列の中で1つ以上連続している空白をすべて空白4つに置換せよ。ただし正規表現は使ってはならない。
例:
"abc def ghi" -> "abc def ghi"
scheme (chicken 4.13)
外部リンク:ideone.com
・空白時にdrop-while
>>842842(1): デフォルトの名無しさん [sage] 2025/09/12(金) 15:41:31.15 ID:IRXhEt4s(1) AAS
お題
1行1単語のリストが、しりとりとして成立しているか判定するコードを書きなさい
成立していたら◯、不成立なら☓をしゅつりょくすること
【入力】
りんご
ごりら
らっぱ
ruby
外部リンク:ideone.com
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s