プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part18
https://mevius.5ch.net/test/read.cgi/tech/1594702426/
探検
プログラミングのお題スレ Part19
■ このスレッドは過去ログ倉庫に格納されています
2020/11/30(月) 00:04:05.21ID:TF2Czp0y
652蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 17:10:52.46ID:CrWxBL6F >>651
(入力例)
こんにちは、{{NAME=蟻人間}}さん。
今年は{{Y}}年です。来年は{{Y+1}}年です。
A={{A=1}}.
B={{B=2}}.
A+B+4={{A+B+4}}.
A*M-2={{A*M-2}}.
日付: {{Y=2021}}年{{M=4}}月{{D=27}}日
{{"☆ "&NAME&" ☆"}}
(入力例)
こんにちは、{{NAME=蟻人間}}さん。
今年は{{Y}}年です。来年は{{Y+1}}年です。
A={{A=1}}.
B={{B=2}}.
A+B+4={{A+B+4}}.
A*M-2={{A*M-2}}.
日付: {{Y=2021}}年{{M=4}}月{{D=27}}日
{{"☆ "&NAME&" ☆"}}
653デフォルトの名無しさん
2021/04/27(火) 20:20:55.02ID:MrWPWVr1 連投死ねクソ蟻
お前に来年は来ねえよ
お前に来年は来ねえよ
654蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 22:28:29.02ID:CrWxBL6F655蟻人間 ◆T6xkBnTXz7B0
2021/04/27(火) 22:30:28.43ID:CrWxBL6F 人間がボットみたいなことやってたらカバみたいだね。ほんとほんと。
656デフォルトの名無しさん
2021/05/03(月) 17:08:04.28ID:meUcD9ks お題
ファイルパスを入力として受け取り、そのサブパスをすべて出力してください
入力: A/B/B/B
出力:
A
A/B
A/B/B
A/B/B/B
ファイルパスを入力として受け取り、そのサブパスをすべて出力してください
入力: A/B/B/B
出力:
A
A/B
A/B/B
A/B/B/B
657デフォルトの名無しさん
2021/05/03(月) 19:31:00.21ID:vyn1ULyt >>656 Ruby
'A/B/B/B'.gsub(/.+?(?<=\/|$)/).reduce(''){|s, a|p s + a}
# => "A/"
"A/B/"
"A/B/B/"
"A/B/B/B"
'A/B/B/B'.gsub(/.+?(?<=\/|$)/).reduce(''){|s, a|p s + a}
# => "A/"
"A/B/"
"A/B/B/"
"A/B/B/B"
658デフォルトの名無しさん
2021/05/03(月) 20:05:34.50ID:vJY6tWsE >>656
haskell
import Data.List
subPathes p = [ str |
str' <- tail $ inits $ p ++ "/",
last str' == '/',
let str = ( reverse $ inits str' ) !! 1 ]
main = mapM print $ subPathes "A/B/B/B"
haskell
import Data.List
subPathes p = [ str |
str' <- tail $ inits $ p ++ "/",
last str' == '/',
let str = ( reverse $ inits str' ) !! 1 ]
main = mapM print $ subPathes "A/B/B/B"
659デフォルトの名無しさん
2021/05/03(月) 22:24:37.21ID:v5K6mFSj >>656 C
char *str = "A/B/B/B";
int i = 0;
while (str[i]) {
if (str[i] == '/') {
char c[i + 1];
memcpy(c, str, i);
c[i] = 0;
printf("%s\n", c);
}
i++;
}
printf("%s\n", str);
char *str = "A/B/B/B";
int i = 0;
while (str[i]) {
if (str[i] == '/') {
char c[i + 1];
memcpy(c, str, i);
c[i] = 0;
printf("%s\n", c);
}
i++;
}
printf("%s\n", str);
660デフォルトの名無しさん
2021/05/03(月) 22:28:25.61ID:Fl247JAk >>656 Ruby
gets.split( ?/ ).inject( [] ){|r,d| (r << d).tap{|t| puts t * ?/ } }
gets.split( ?/ ).inject( [] ){|r,d| (r << d).tap{|t| puts t * ?/ } }
661デフォルトの名無しさん
2021/05/03(月) 23:35:00.95ID:ED/pHj/W python
import sys
from pathlib import PurePath
for x in PurePath(sys.argv[1]).parents: print(x)
import sys
from pathlib import PurePath
for x in PurePath(sys.argv[1]).parents: print(x)
662デフォルトの名無しさん
2021/05/04(火) 01:17:51.79ID:BGUDbBhh >>656
Kotlin
https://paiza.io/projects/KhmBe1ysOa3PIaPX7xJkDg
最初は再帰でやろうと思ったけど止めて、Kotlin らしく拡張プロパティ作って実現した。
Kotlin
https://paiza.io/projects/KhmBe1ysOa3PIaPX7xJkDg
最初は再帰でやろうと思ったけど止めて、Kotlin らしく拡張プロパティ作って実現した。
663デフォルトの名無しさん
2021/05/04(火) 02:03:51.93ID:BGUDbBhh 文字列をPATHの区切り文字で後ろから検索しないで先頭から検索しても同じと気付いたのでこっそり直した。
664デフォルトの名無しさん
2021/05/04(火) 18:30:10.36ID:0HSekrvc >>656 Ruby
def f(s)
a=s.split("/")
(0..a.size-1).map{|i| a[0..i].join("/")}
end
p f("A/B/B/B")
実行結果
["A", "A/B", "A/B/B", "A/B/B/B"]
def f(s)
a=s.split("/")
(0..a.size-1).map{|i| a[0..i].join("/")}
end
p f("A/B/B/B")
実行結果
["A", "A/B", "A/B/B", "A/B/B/B"]
665デフォルトの名無しさん
2021/05/06(木) 18:06:27.01ID:b7Mkjg0R >>656
Elixir
list = String.split( "a/bc/d", "/" ) # 分割
# 第2引数は、蓄積変数の初期値
%{ list: result } = Enum.reduce( list, %{ list: [ ], word: "" }, fn( str, acc )->
tmp_str = acc.word <> str # 文字だけを連結する。/ は連結しない
acc = %{ acc | list: acc.list ++ [ tmp_str ] } # 連結
acc = %{ acc | word: tmp_str <> "/" } # 連結
acc
end )
IO.inspect result
#=> ["a", "a/bc", "a/bc/d"]
Elixir
list = String.split( "a/bc/d", "/" ) # 分割
# 第2引数は、蓄積変数の初期値
%{ list: result } = Enum.reduce( list, %{ list: [ ], word: "" }, fn( str, acc )->
tmp_str = acc.word <> str # 文字だけを連結する。/ は連結しない
acc = %{ acc | list: acc.list ++ [ tmp_str ] } # 連結
acc = %{ acc | word: tmp_str <> "/" } # 連結
acc
end )
IO.inspect result
#=> ["a", "a/bc", "a/bc/d"]
666デフォルトの名無しさん
2021/05/06(木) 18:47:12.53ID:wT5/oYmn a="ko/koh/oreo/n/eone"
['/'.join(a.split('/')[0:i+1]) for i in range(len(a.split('/')))]
['/'.join(a.split('/')[0:i+1]) for i in range(len(a.split('/')))]
667デフォルトの名無しさん
2021/05/06(木) 20:53:31.79ID:DSX8dnAp ここに練習用のいいファイルあるわ
https://tackle57.base.ec/
https://tackle57.base.ec/
668蟻人間 ◆T6xkBnTXz7B0
2021/05/06(木) 21:10:09.05ID:q2LSo660669デフォルトの名無しさん
2021/05/06(木) 21:37:58.66ID:ajjDZVcw >>667
さりげなく妙に高い値段のソフトの販売サイトに誘導しないように。
さりげなく妙に高い値段のソフトの販売サイトに誘導しないように。
670デフォルトの名無しさん
2021/05/06(木) 21:43:26.28ID:F7n15kLE >>668
答え:お前の存在が間違い
答え:お前の存在が間違い
672デフォルトの名無しさん
2021/05/06(木) 22:23:58.98ID:wWHyWlvf >>668
#include <studio.h>
#include <studio.h>
673行間を読みなさいw
2021/05/07(金) 13:48:08.72ID:H+I+sfZ3 WHEREコマンドはReactOSに既に実装されています。
なので、(あえて作る場合でも)それを基にしてく
ださい(よ、頼むからさ。失礼だと思わないの?)
>コマンドではなく機能です。そして(既に実装されている)
>それは、この目的に対して便利ではありません。
貴方は公開されている(ReactOS実装の?)関数の
コードをパクって、独立したアプリケーションにしたと
いうわけですね。
というのであれば(我々の)メインストリームコードと
同期しているサードパーティコードみたいな感じを
装う必要はありません(はっきり言わせてもらえば
「しないで下さい」)
なので、(あえて作る場合でも)それを基にしてく
ださい(よ、頼むからさ。失礼だと思わないの?)
>コマンドではなく機能です。そして(既に実装されている)
>それは、この目的に対して便利ではありません。
貴方は公開されている(ReactOS実装の?)関数の
コードをパクって、独立したアプリケーションにしたと
いうわけですね。
というのであれば(我々の)メインストリームコードと
同期しているサードパーティコードみたいな感じを
装う必要はありません(はっきり言わせてもらえば
「しないで下さい」)
674デフォルトの名無しさん
2021/05/07(金) 13:57:45.37ID:H+I+sfZ3 システムで色々な箇所で使用される短縮名称
を正式名称と(相互)変換する機能なんて
アルゴリズムとかの題材とかには不適。
泥臭い部分がかなりあるシステム固有の設計
の話になるしたとえコードは公開しているに
せよ部外者の立ち入りは歓迎されないのは
当然。 実情を詳しく知らない外部の人に
任せられる部分じゃなかったりするから。
を正式名称と(相互)変換する機能なんて
アルゴリズムとかの題材とかには不適。
泥臭い部分がかなりあるシステム固有の設計
の話になるしたとえコードは公開しているに
せよ部外者の立ち入りは歓迎されないのは
当然。 実情を詳しく知らない外部の人に
任せられる部分じゃなかったりするから。
675デフォルトの名無しさん
2021/05/07(金) 19:10:13.55ID:FdFZQv1E >>656 JavaScript
"A/B/B/B".replace(/^\/|\/?[^\/]*/g, (_, o, s) => console.log(s.substring(0, o)));
"A/B/B/B".replace(/^\/|\/?[^\/]*/g, (_, o, s) => console.log(s.substring(0, o)));
676Mb
2021/05/07(金) 22:02:57.18ID:P+8SzjSX 読み仮名(ひらがな、カタカナ)から、単純なコード順の整列キーを
生成するルーチンを書く。
単純にコード順で整列すると、「ガレージ」は「カレー」の直後には
こなくて、「か(蚊)」の後ではなく、「ガ(蛾)」の後に
来てしまう。
比較関数を定義しようとすると、順序関係が一意に決まらなくなって
整列ルーチンが止まらなくなる。また、SQL などの整列機能が利用できない。
業務系のシステムだと、企業名だとか個人名だとかの読みで整列する
要求があるので、読みの入力時に整列用のキーを生成しておくのが
吉と思われる。
生成するルーチンを書く。
単純にコード順で整列すると、「ガレージ」は「カレー」の直後には
こなくて、「か(蚊)」の後ではなく、「ガ(蛾)」の後に
来てしまう。
比較関数を定義しようとすると、順序関係が一意に決まらなくなって
整列ルーチンが止まらなくなる。また、SQL などの整列機能が利用できない。
業務系のシステムだと、企業名だとか個人名だとかの読みで整列する
要求があるので、読みの入力時に整列用のキーを生成しておくのが
吉と思われる。
677デフォルトの名無しさん
2021/05/08(土) 01:15:44.80ID:qYTbA2A2 >>651 C++
エクセル使ったことないから挙動が違ってたらごめんね
最後のほうはやっつけで書いたのでバグってるかもしれない
https://wandbox.org/permlink/AfU4a1aLrkxhkErW
エクセル使ったことないから挙動が違ってたらごめんね
最後のほうはやっつけで書いたのでバグってるかもしれない
https://wandbox.org/permlink/AfU4a1aLrkxhkErW
678デフォルトの名無しさん
2021/05/08(土) 05:04:40.43ID:PD8fhCnz680デフォルトの名無しさん
2021/05/08(土) 14:56:47.01ID:bO3UufY6681デフォルトの名無しさん
2021/05/09(日) 21:15:00.81ID:1F2i56L2 お題:
N 人が一列に並んでおり、左から i 人目の人は色 C[i] の服を着ています。
あるチームは次の条件を満たすとき、良いチームであると言います。
- 0 人以上が所属している。
- すべての色 i について、色 i の服を着た人がチームに偶数人所属している。
N 人から "連続する" 0 人以上を選んで良いチームを作るとき、
チームに所属する人の数としてあり得る最大値を求めて下さい。
制約:
1≦N≦10^6
1≦C[i]≦60
入力:
N
C1 C2 ... CN
入力例 1
5
1 2 3 3 1
出力例 1
2
入力例 2
5
1 2 3 4 5
出力例 2
0
N 人が一列に並んでおり、左から i 人目の人は色 C[i] の服を着ています。
あるチームは次の条件を満たすとき、良いチームであると言います。
- 0 人以上が所属している。
- すべての色 i について、色 i の服を着た人がチームに偶数人所属している。
N 人から "連続する" 0 人以上を選んで良いチームを作るとき、
チームに所属する人の数としてあり得る最大値を求めて下さい。
制約:
1≦N≦10^6
1≦C[i]≦60
入力:
N
C1 C2 ... CN
入力例 1
5
1 2 3 3 1
出力例 1
2
入力例 2
5
1 2 3 4 5
出力例 2
0
682デフォルトの名無しさん
2021/05/09(日) 22:47:51.84ID:YYfh4rSr >>681
Haskell
import Data.List
mxLenGoodTeams cs = let
teams = [ take j $ drop i $ cs |
i <- [ 0..( length cs - 1) ],
j <- [ 2 .. ( length cs - i ) ] ]
isGoodTeam team
= all ( even . length ) $ group $ sort $ team
in maximum $ ( 0 : ) $ map length $ filter isGoodTeam teams
main = do
print $ mxLenGoodTeams $ [ 1,2,3,3,1 ]
print $ mxLenGoodTeams $ [ 1,2,3,4,5 ]
Haskell
import Data.List
mxLenGoodTeams cs = let
teams = [ take j $ drop i $ cs |
i <- [ 0..( length cs - 1) ],
j <- [ 2 .. ( length cs - i ) ] ]
isGoodTeam team
= all ( even . length ) $ group $ sort $ team
in maximum $ ( 0 : ) $ map length $ filter isGoodTeam teams
main = do
print $ mxLenGoodTeams $ [ 1,2,3,3,1 ]
print $ mxLenGoodTeams $ [ 1,2,3,4,5 ]
683デフォルトの名無しさん
2021/05/10(月) 00:22:13.18ID:mAsL1Pq+684デフォルトの名無しさん
2021/05/10(月) 01:18:02.63ID:DR29Zbhh685デフォルトの名無しさん
2021/05/10(月) 01:18:51.44ID:DR29Zbhh686デフォルトの名無しさん
2021/05/11(火) 00:16:24.82ID:sq5XRTcM >>681
問題の意味がわからない。
> - すべての色 i について、色 i の服を着た人がチームに偶数人所属している。
とはどういう意味なのか?
「すべての色 i 」とは何か?
「色 i の服を着た人がチームに偶数人所属」というのはどういう意味なのか? 同じ色の服を着た人は存在しないのだよな?
問題の意味がわからない。
> - すべての色 i について、色 i の服を着た人がチームに偶数人所属している。
とはどういう意味なのか?
「すべての色 i 」とは何か?
「色 i の服を着た人がチームに偶数人所属」というのはどういう意味なのか? 同じ色の服を着た人は存在しないのだよな?
687デフォルトの名無しさん
2021/05/11(火) 05:10:59.51ID:TUYWs3v7 毎度ながら日本語も問題作成も入出力例もクッソ下手だとは思うが
おまえはおまえで読解力無さ過ぎ
連続した (1≦10^6)個のデータ
データ内容は 1≦60
データ内容が偶数個となる連続した部分の最大長
1 2 2 3 3 4 4 5 → 2 2 3 3 4 4 → 6
1 2 3 4 2 3 4 5 → 2 3 4 2 3 4 → 6
1 2 3 4 5 2 3 4 → - → 0
1 2 3 3 2 4 5 4 → 2 3 3 2 → 4
1 2 3 2 2 3 2 4 → 2 3 2 2 3 2 → 6
まあ例に関しては俺も人のこと言えない
陥りやすいミスを確認しやすいキラーサンプル的な例がいくつかあればベスト
おまえはおまえで読解力無さ過ぎ
連続した (1≦10^6)個のデータ
データ内容は 1≦60
データ内容が偶数個となる連続した部分の最大長
1 2 2 3 3 4 4 5 → 2 2 3 3 4 4 → 6
1 2 3 4 2 3 4 5 → 2 3 4 2 3 4 → 6
1 2 3 4 5 2 3 4 → - → 0
1 2 3 3 2 4 5 4 → 2 3 3 2 → 4
1 2 3 2 2 3 2 4 → 2 3 2 2 3 2 → 6
まあ例に関しては俺も人のこと言えない
陥りやすいミスを確認しやすいキラーサンプル的な例がいくつかあればベスト
688デフォルトの名無しさん
2021/05/11(火) 20:07:35.50ID:m1fDyeBb 入出力例は不親切だとは思うが
問題文自体は問題ないでしょう
あれが理解できないというのであれば理解できない側の能力に問題がある
問題文自体は問題ないでしょう
あれが理解できないというのであれば理解できない側の能力に問題がある
689デフォルトの名無しさん
2021/05/11(火) 20:11:36.25ID:jkEXfYRr 色C[i]
色i
終了
色i
終了
690デフォルトの名無しさん
2021/05/11(火) 20:21:52.62ID:IH6PME9X 色C[i]は「i番目の人が来ている服の色」
色iは単に色
色iは単に色
691デフォルトの名無しさん
2021/05/11(火) 20:23:51.68ID:PxX+uCNu692デフォルトの名無しさん
2021/05/11(火) 20:27:14.53ID:IH6PME9X693デフォルトの名無しさん
2021/05/11(火) 20:30:24.67ID:AKHuOMpp 別にiが添え字の自然数と宣言しているわけでもなし文法的にも間違ってない
アスペでもない限り理解できる
アスペでもない限り理解できる
694デフォルトの名無しさん
2021/05/11(火) 20:35:40.14ID:jkEXfYRr C[blue]みたいな?
iはインデックスじゃないんだ
iはインデックスじゃないんだ
695デフォルトの名無しさん
2021/05/11(火) 20:38:54.00ID:PxX+uCNu696デフォルトの名無しさん
2021/05/11(火) 20:40:02.84ID:aw7aUPl3 >>695
お、perlおじさんか?
お、perlおじさんか?
697デフォルトの名無しさん
2021/05/11(火) 20:40:22.57ID:PxX+uCNu >>686が嫌味で書いたのか本当にわからなかったのかはわからない
698デフォルトの名無しさん
2021/05/12(水) 10:57:02.98ID:xHZdId+E プログラミング言語が使えても日本語が使えないのでは話が伝わらない。
それだったらプログラミング言語でそのまま書いてくれた方がここのスレでは話が通じる。
それだったらプログラミング言語でそのまま書いてくれた方がここのスレでは話が通じる。
699デフォルトの名無しさん
2021/05/12(水) 12:28:32.10ID:kJR81pbU ・左から100番目の人はC[100]の色の服を着ていると読める
・列を自由に入力して良いのなら、最大値はN以下の偶数となり自明
・列を自由に入力して良いのなら、最大値はN以下の偶数となり自明
700デフォルトの名無しさん
2021/05/12(水) 14:17:43.85ID:Ro8bxiRw まるで競プロだな
701デフォルトの名無しさん
2021/05/12(水) 16:05:32.13ID:ASs2TDTE >>681
出題者です
問題文がわかりずらかったみたいですいません
想定解法書きます (配列はすべて 0-index です)
A[0] = 0
A[i] = A[i - 1] xor (2^(C[i - 1] - 1)) (1≦i≦N)
な配列 A を考えます
ある区間 [L, R) がいいチームであるならば、A[R] xor A[L] = 0 です (累積和と同じ発想です)
両辺に A[R] を xor すると A[L] = A[R] になります
R を全探索しながらあり得る L のうちで一番左側のものを連想配列などで求めることで
N = 10^6 などのケースでも高速に答えを得ることができます
出題者です
問題文がわかりずらかったみたいですいません
想定解法書きます (配列はすべて 0-index です)
A[0] = 0
A[i] = A[i - 1] xor (2^(C[i - 1] - 1)) (1≦i≦N)
な配列 A を考えます
ある区間 [L, R) がいいチームであるならば、A[R] xor A[L] = 0 です (累積和と同じ発想です)
両辺に A[R] を xor すると A[L] = A[R] になります
R を全探索しながらあり得る L のうちで一番左側のものを連想配列などで求めることで
N = 10^6 などのケースでも高速に答えを得ることができます
702デフォルトの名無しさん
2021/05/13(木) 13:08:14.73ID:tJiNVUVY 問題文の他例が二つしかないから分かりにくい
>>687の説明みるまで何が良いチームなのか分かりにくい
>>687の説明みるまで何が良いチームなのか分かりにくい
703デフォルトの名無しさん
2021/05/13(木) 19:07:49.38ID:3W7MB1VC > 一列に並んでおり、左から
左てなんだ?先頭末尾なら分かるが
> 良いチームであると言います
なんだそのモヤる日本語。普通にチームで良いだろ
チームの条件として色が偶数があれば良いんだから
> i 人目の人は色 C[i] の服を着て
あとの制約見るまで一意かと勘違いする。説明でいちいち C[i] と置くのもイミフ
説明をただただややこしくしてるだけ
仕事で仕様の説明でこんな喩え話してきたらキレるわ
左てなんだ?先頭末尾なら分かるが
> 良いチームであると言います
なんだそのモヤる日本語。普通にチームで良いだろ
チームの条件として色が偶数があれば良いんだから
> i 人目の人は色 C[i] の服を着て
あとの制約見るまで一意かと勘違いする。説明でいちいち C[i] と置くのもイミフ
説明をただただややこしくしてるだけ
仕事で仕様の説明でこんな喩え話してきたらキレるわ
704デフォルトの名無しさん
2021/05/13(木) 21:41:53.75ID:B4CYAsif 短気すぎるだろ
705Mb
2021/05/13(木) 21:42:39.21ID:kEXKw6jf >>693
> アスペでもない限り理解できる
「アスペルガー症候群」というのは、昔は「高機能広汎性発達障害」といって、
わりと馬鹿にしたもんでもない。かくいう私も、いわゆる「アスペ」の
一人だ。
ここで問題。日本語の(現代語の)動詞のうち、アルゴリズム的に押さえこめる
動詞(規則活用動詞)"以外の" 動詞はいくつあるか。
なお、「長尾の法則」(頭から見ていって、非・漢字から漢字に変化するところで、
文節は切れる)は使ってよし(「お」とか「ご」とかは名詞につくから、
このさい関係はなし)。
とりあえず六つはあって、サ変とかカ変とかは既知だけど、「そもそも、
どれだけあるのか?」っつー話になると、かなり面倒。
> アスペでもない限り理解できる
「アスペルガー症候群」というのは、昔は「高機能広汎性発達障害」といって、
わりと馬鹿にしたもんでもない。かくいう私も、いわゆる「アスペ」の
一人だ。
ここで問題。日本語の(現代語の)動詞のうち、アルゴリズム的に押さえこめる
動詞(規則活用動詞)"以外の" 動詞はいくつあるか。
なお、「長尾の法則」(頭から見ていって、非・漢字から漢字に変化するところで、
文節は切れる)は使ってよし(「お」とか「ご」とかは名詞につくから、
このさい関係はなし)。
とりあえず六つはあって、サ変とかカ変とかは既知だけど、「そもそも、
どれだけあるのか?」っつー話になると、かなり面倒。
706デフォルトの名無しさん
2021/05/13(木) 21:45:18.19ID:B4CYAsif707デフォルトの名無しさん
2021/05/13(木) 22:16:56.76ID:lZ9C/hi/ お前も短気すぎるw
708デフォルトの名無しさん
2021/05/13(木) 23:36:26.05ID:mWio4uhK さっさとPythonやらせれ
ちょっとでいいから
20年前に覚えたPerlに変わるマクロがいるんじゃああああああ
VBAでいいとかいわない
ちょっとでいいから
20年前に覚えたPerlに変わるマクロがいるんじゃああああああ
VBAでいいとかいわない
709デフォルトの名無しさん
2021/05/14(金) 11:54:50.47ID:l/Mcr9Yu バカの書いた不適切な文書は不和をもたらす
>>681のことな
>>681のことな
710デフォルトの名無しさん
2021/05/14(金) 13:21:20.02ID:23AH7lhZ もうこれからは出題するときは頭に馬鹿には理解できない問題
ってとりあえず書いておけばいいのに
そうすれば荒れることもなくなるだろうから
ってとりあえず書いておけばいいのに
そうすれば荒れることもなくなるだろうから
711デフォルトの名無しさん
2021/05/14(金) 13:38:00.72ID:f3dsViZI 【コミュニティの一生】
面白い人が面白いことをする
↓
面白いから凡人が集まってくる
↓
住み着いた凡人が居場所を守るために主張し始める
↓
面白い人が見切りをつけて居なくなる
↓
残った凡人が面白くないことをする
↓
面白くないので皆居なくなる
面白い人が面白いことをする
↓
面白いから凡人が集まってくる
↓
住み着いた凡人が居場所を守るために主張し始める
↓
面白い人が見切りをつけて居なくなる
↓
残った凡人が面白くないことをする
↓
面白くないので皆居なくなる
712デフォルトの名無しさん
2021/05/14(金) 14:08:14.84ID:4R64iY9Y 問題を作るのは難しいからしゃあない
どんな入力で、求めるのが値なのかアルゴリズムなのかを明示すればいい
どんな入力で、求めるのが値なのかアルゴリズムなのかを明示すればいい
713デフォルトの名無しさん
2021/05/14(金) 15:59:25.59ID:BwDBHw+5 お題: join関数を自作せよ
join関数は第2引数の配列を第1引数の文字列で連結する関数である
func join(sep, array)
s = join(':', ['1', '2', '3'])
puts(s)
# 1:2:3
sepは文字列で、文字列で無かった場合の動作は未定義である
arrayは長さが0以上の配列で要素は文字列である。それ以外の構造は未定義である
join関数は第2引数の配列を第1引数の文字列で連結する関数である
func join(sep, array)
s = join(':', ['1', '2', '3'])
puts(s)
# 1:2:3
sepは文字列で、文字列で無かった場合の動作は未定義である
arrayは長さが0以上の配列で要素は文字列である。それ以外の構造は未定義である
714デフォルトの名無しさん
2021/05/14(金) 16:23:22.95ID:WbiXCFQ1 先に解答例を作ってそこから試験問題作る先生のように
逆にたどって問題作れば分かり易い問題作れるのに
イキって、よーし、ぼくちゃん問題作っちゃるぞー!って、
解答未定のまま問題から作り始めるから今回のようにアフォなことになるんよ
逆にたどって問題作れば分かり易い問題作れるのに
イキって、よーし、ぼくちゃん問題作っちゃるぞー!って、
解答未定のまま問題から作り始めるから今回のようにアフォなことになるんよ
715デフォルトの名無しさん
2021/05/14(金) 16:35:13.82ID:cn5v//cT python
def joint(s,x,y=""):
if len(x) == 1:
print(f"{x[-1]}{y}")
else:
joint(s,x[:-1],f"{s}{x[-1]}{y}"))
def joint(s,x,y=""):
if len(x) == 1:
print(f"{x[-1]}{y}")
else:
joint(s,x[:-1],f"{s}{x[-1]}{y}"))
716デフォルトの名無しさん
2021/05/14(金) 16:45:17.02ID:4R64iY9Y717デフォルトの名無しさん
2021/05/14(金) 19:57:58.55ID:BwDBHw+5718デフォルトの名無しさん
2021/05/14(金) 20:06:49.42ID:m9ewaxml >>713
Haskell
join x = tail . concat . map ( ( x : ) . return )
main = do
print $ join ':' "123"
print $ join ' ' "Hello"
Haskell
join x = tail . concat . map ( ( x : ) . return )
main = do
print $ join ':' "123"
print $ join ' ' "Hello"
719デフォルトの名無しさん
2021/05/14(金) 20:28:04.72ID:DpIMp/DM >>713 Lua
function join(d, a)
local r = a[1]
for i = 2, #a do
r = r .. d .. a[i]
end
return r
end
print(join(":", {"1", "2", "3"}))
実行結果
1:2:3
function join(d, a)
local r = a[1]
for i = 2, #a do
r = r .. d .. a[i]
end
return r
end
print(join(":", {"1", "2", "3"}))
実行結果
1:2:3
720デフォルトの名無しさん
2021/05/14(金) 20:49:04.94ID:SGxg0iSp def join(sep, list)
□return sep.join(list)
□return sep.join(list)
721デフォルトの名無しさん
2021/05/14(金) 21:20:46.78ID:9KJ7FZky722デフォルトの名無しさん
2021/05/14(金) 21:50:11.90ID:G1LerHLY723蟻人間 ◆T6xkBnTXz7B0
2021/05/14(金) 22:06:57.32ID:YwXzhkVg お題: split関数を自作せよ。
split関数は第2引数の文字列を第1引数の文字列を区切りとして分割した配列を返す関数である。
func split(sep, str)
s = split(':', '1:2:3')
puts(s)
# [1, 2, 3]
sepは文字列で、文字列で無かった場合の動作は未定義である。sepの長さがゼロの場合は第二引数を一文字ずつ分割する。
strは長さが0以上の文字列である。
split関数は第2引数の文字列を第1引数の文字列を区切りとして分割した配列を返す関数である。
func split(sep, str)
s = split(':', '1:2:3')
puts(s)
# [1, 2, 3]
sepは文字列で、文字列で無かった場合の動作は未定義である。sepの長さがゼロの場合は第二引数を一文字ずつ分割する。
strは長さが0以上の文字列である。
724デフォルトの名無しさん
2021/05/14(金) 22:12:56.30ID:vm/4NlOj join見て脊髄反射する虫並みの思考
725デフォルトの名無しさん
2021/05/14(金) 23:14:10.50ID:RR8r1Nrv >>713
Kotlin または Kotlin script
関数定義
fun join(sep: String, vararg a: String) = a.reduce { acc, s -> "$acc$sep$s" }
使用する時
println(join(",", "abc", "def", "1", "23", "456"))
または
println(join(",", arrayOf("abc", "def", "1", "23", "456")))
これで出力はどちらもこうなる。
abc,def,1,23,456
Kotlin または Kotlin script
関数定義
fun join(sep: String, vararg a: String) = a.reduce { acc, s -> "$acc$sep$s" }
使用する時
println(join(",", "abc", "def", "1", "23", "456"))
または
println(join(",", arrayOf("abc", "def", "1", "23", "456")))
これで出力はどちらもこうなる。
abc,def,1,23,456
726デフォルトの名無しさん
2021/05/14(金) 23:19:19.70ID:SGxg0iSp def split(sep,str)
□return str.split(sep)
□return str.split(sep)
727デフォルトの名無しさん
2021/05/14(金) 23:24:38.63ID:4R64iY9Y728デフォルトの名無しさん
2021/05/15(土) 00:15:44.50ID:yahE8f7K sepの長さがゼロなら一文字ずつ分割するか
忘れてたわ
忘れてたわ
729デフォルトの名無しさん
2021/05/15(土) 00:33:17.27ID:YdirCY4B 出題者は効率のいいアルゴリズムを考え(>>701)させたかったが、
回答者は言われた通りのものを実装するだけのお題を望んでたって感じか (だから問題文がややこしいとか言われるんだろう)
このスレ向きのお題じゃなかったな
回答者は言われた通りのものを実装するだけのお題を望んでたって感じか (だから問題文がややこしいとか言われるんだろう)
このスレ向きのお題じゃなかったな
730デフォルトの名無しさん
2021/05/15(土) 00:56:03.56ID:JNomAybm ンなワケねえだろ
お前本人か?
競プロの他の問題文と比べて明らかに文章の質が低いじゃん
お前本人か?
競プロの他の問題文と比べて明らかに文章の質が低いじゃん
731デフォルトの名無しさん
2021/05/15(土) 02:20:17.81ID:yahE8f7K732デフォルトの名無しさん
2021/05/15(土) 09:21:42.89ID:YsUBX88Q やはり速度が問題ならその旨ちゃんと書かないとわからない
そもそもプログラムは早ければいいわけではないし、短ければいいわけでもないし、可読性が高ければそれでいいわけでもない
それらは全部トレードオフの関係があってどこにウェイトを置くかはそれが使われる場面場面で変わってくる
「このお題では速度重視」というならその旨明示しないと
そもそもプログラムは早ければいいわけではないし、短ければいいわけでもないし、可読性が高ければそれでいいわけでもない
それらは全部トレードオフの関係があってどこにウェイトを置くかはそれが使われる場面場面で変わってくる
「このお題では速度重視」というならその旨明示しないと
733デフォルトの名無しさん
2021/05/15(土) 09:48:59.68ID:GxLTBboh ゴルフ問題でもいいぞ
734デフォルトの名無しさん
2021/05/15(土) 12:53:51.38ID:yahE8f7K 100桁以下の60進数の数列があって、条件に適合し得る部分の最大の長さはいくらかだから
N以下の偶数の最大値で自明だろ
だから何の問題なのか分からんって人がいるんじゃね?
N以下の偶数の最大値で自明だろ
だから何の問題なのか分からんって人がいるんじゃね?
735デフォルトの名無しさん
2021/05/15(土) 13:06:25.58ID:yahE8f7K 100桁じゃねえ100万桁だ
736デフォルトの名無しさん
2021/05/15(土) 13:07:07.72ID:yahE8f7K 100万桁じゃねえ100万以下だ
737デフォルトの名無しさん
2021/05/15(土) 13:08:15.70ID:yahE8f7K 100万桁で良いのか
寝ぼけてんな、失礼
寝ぼけてんな、失礼
738デフォルトの名無しさん
2021/05/15(土) 15:54:17.99ID:d+8scdvN >>723
Kotlin
https://paiza.io/projects/rXwwuvtSVOP4hMo6FOyZuA
どうせループさせるんだから Iterator 作ってやっちゃおうか、など、色々やって長くなった。
Kotlin
https://paiza.io/projects/rXwwuvtSVOP4hMo6FOyZuA
どうせループさせるんだから Iterator 作ってやっちゃおうか、など、色々やって長くなった。
739デフォルトの名無しさん
2021/05/15(土) 15:57:04.95ID:d+8scdvN 区切り文字列が長さ0の時の処理がバグってて最後の文字がなくなるな。
こっそり直しておこう。
こっそり直しておこう。
740デフォルトの名無しさん
2021/05/15(土) 15:58:56.01ID:d+8scdvN 直った。
741蟻人間 ◆T6xkBnTXz7B0
2021/05/16(日) 11:50:18.74ID:EAK6Onef お題: 任意のテキストデータから数値データを抽出し、列挙するプログラム。
「12あいうえお34.5かき7.0くけこ」
→[12, 34.5, 7].
「0.12ABC3.45DE0.02FGH」
→[0.12, 3.45, 0.02].
「12あいうえお34.5かき7.0くけこ」
→[12, 34.5, 7].
「0.12ABC3.45DE0.02FGH」
→[0.12, 3.45, 0.02].
742デフォルトの名無しさん
2021/05/16(日) 12:30:25.44ID:KcTdWT19 >>741
document.querySelectorAll('span.name').forEach(e => {
if(e.innerText.indexOf('蟻人間') >= 0){
e.parentElement.parentElement.style.display = 'none';
}
})
document.querySelectorAll('span.name').forEach(e => {
if(e.innerText.indexOf('蟻人間') >= 0){
e.parentElement.parentElement.style.display = 'none';
}
})
743デフォルトの名無しさん
2021/05/16(日) 13:03:07.41ID:rG9ernac744デフォルトの名無しさん
2021/05/16(日) 13:38:29.85ID:rG9ernac >>743
この string-split-if には不満が残る
(string-split-if #'alpha-char-p "123abc456")
実際の結果: ("123" "" "" "456")
期待した結果: ("123" "456")
この string-split-if には不満が残る
(string-split-if #'alpha-char-p "123abc456")
実際の結果: ("123" "" "" "456")
期待した結果: ("123" "456")
746デフォルトの名無しさん
2021/05/16(日) 16:25:18.39ID:bjgpsQdf747デフォルトの名無しさん
2021/05/16(日) 16:28:58.27ID:bjgpsQdf >>741
Perl5
もうほとんど何も考えてない。文字列切り出してるだけ。
以下は Linux で bash のコマンドラインで実行したところ。
$ echo '0.12ABC3.45DE0.02FGH' | perl -ne 'while(/(\d+(\.\d+)?)/g){print "$1\n"}'
0.12
3.45
0.02
$
Perl5
もうほとんど何も考えてない。文字列切り出してるだけ。
以下は Linux で bash のコマンドラインで実行したところ。
$ echo '0.12ABC3.45DE0.02FGH' | perl -ne 'while(/(\d+(\.\d+)?)/g){print "$1\n"}'
0.12
3.45
0.02
$
748蟻人間 ◆T6xkBnTXz7B0
2021/05/16(日) 18:23:07.91ID:EAK6Onef お題: テキストデータに含まれている数値データを全部2倍にしたテキストを返すプログラム。
「7ABC123DE0.5FG82」
→「14ABC246DE1FG164」.
「あいう75.04えおか54きく-25」
→「あいう150.08えおか108きく-50」.
「7ABC123DE0.5FG82」
→「14ABC246DE1FG164」.
「あいう75.04えおか54きく-25」
→「あいう150.08えおか108きく-50」.
749デフォルトの名無しさん
2021/05/16(日) 18:35:21.17ID:bjgpsQdf >>748
Perl5
Perlだとこういうのはほとんど何も考えずに作れて楽だね。
$ ( echo '7ABC123DE0.5FG82' ; echo 'あいう75.04えおか54きく-25' ) | perl -pe 's/(\d+(\.\d+)?)/$1*2/ge;'
14ABC246DE1FG164
あいう150.08えおか108きく-50
$
Perl5
Perlだとこういうのはほとんど何も考えずに作れて楽だね。
$ ( echo '7ABC123DE0.5FG82' ; echo 'あいう75.04えおか54きく-25' ) | perl -pe 's/(\d+(\.\d+)?)/$1*2/ge;'
14ABC246DE1FG164
あいう150.08えおか108きく-50
$
750デフォルトの名無しさん
2021/05/16(日) 19:37:22.32ID:bjgpsQdf >>748
Kotlin script
小数点以下の桁数を元の文字列に合わせるために java.text.DecimalFormat クラスを使用しているが、長くなってしまったなあ。
以下はコマンドラインから kotlinc で動かした Kotlin の REPL での入力と出力(>>> がプロンプト)。
>>> val ls = listOf("7ABC123DE0.5FG82", "あいう75.04えおか54きく-25")
>>> ls.forEach { println(it.replace(Regex("""\d+(\.\d+)?""")) { java.text.DecimalFormat(it.value.replace(Regex("\\d"), "#")).format(it.value.toDouble() * 2.0) }) }
14ABC246DE1FG164
あいう150.08えおか108きく-50
>>>
Kotlin script
小数点以下の桁数を元の文字列に合わせるために java.text.DecimalFormat クラスを使用しているが、長くなってしまったなあ。
以下はコマンドラインから kotlinc で動かした Kotlin の REPL での入力と出力(>>> がプロンプト)。
>>> val ls = listOf("7ABC123DE0.5FG82", "あいう75.04えおか54きく-25")
>>> ls.forEach { println(it.replace(Regex("""\d+(\.\d+)?""")) { java.text.DecimalFormat(it.value.replace(Regex("\\d"), "#")).format(it.value.toDouble() * 2.0) }) }
14ABC246DE1FG164
あいう150.08えおか108きく-50
>>>
751蟻人間 ◆T6xkBnTXz7B0
2021/05/16(日) 20:57:57.47ID:kWXR6C+3 お題:メールアドレスの難読化。
"info@example.com" ---> "info at example dot com".
"katayama.hirofumi.mz@example.com" ---> "katayama dot hirofumi dot mz at example dot com".
"info@example.com" ---> "info at example dot com".
"katayama.hirofumi.mz@example.com" ---> "katayama dot hirofumi dot mz at example dot com".
752デフォルトの名無しさん
2021/05/17(月) 02:01:43.00ID:GcVF7Ydc お題:オートマドリング
以下の各問の要求された面積の所要室及び廊下を配置した、最も全体面積の小さい間取り図を出力せよ。
また、各間取り図は次の条件を満たすものとする。
・各室は廊下に面し、建物全体の形は長方形とする。
・間取り図は一文字を一坪とし、室はアルファベット、廊下は+で表示。
・廊下の面積は自由に決めて良い。
・最小面積の間取り図が複数の場合は、そのうち一つを表示すれば良い。
・全体面積(坪)を間取り図の下に表示。
【例】
所要室と要求面積(坪)
A:4, B:6, C:8, D:4
【出力例】
AAAA+DDD
BBBB+CCD
BBCCCCCC
(24)
【問1】
A:3, B:5, C:4
【問2】
A:8, B:4, C:6
【問3】
A:5, B:2, C:3, D:6, E,2
以下の各問の要求された面積の所要室及び廊下を配置した、最も全体面積の小さい間取り図を出力せよ。
また、各間取り図は次の条件を満たすものとする。
・各室は廊下に面し、建物全体の形は長方形とする。
・間取り図は一文字を一坪とし、室はアルファベット、廊下は+で表示。
・廊下の面積は自由に決めて良い。
・最小面積の間取り図が複数の場合は、そのうち一つを表示すれば良い。
・全体面積(坪)を間取り図の下に表示。
【例】
所要室と要求面積(坪)
A:4, B:6, C:8, D:4
【出力例】
AAAA+DDD
BBBB+CCD
BBCCCCCC
(24)
【問1】
A:3, B:5, C:4
【問2】
A:8, B:4, C:6
【問3】
A:5, B:2, C:3, D:6, E,2
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「やっぱり顔採用かよ…」就活生を襲う“見えないルッキズム”の現実 [七波羅探題★]
- カードじゃなくて「紙」が活躍中…健康保険の「資格確認書」 大きすぎて困惑する人も [蚤の市★]
- 今後50年間、毎年100万人ずつ人口が減る…「少子化対策」の失敗で日本が迎える「死ぬまで搾取」というヤバい未来 ★9 [ぐれ★]
- 「5人が抱き合う遺体発見」香港高層火災、150人安否不明 警察はボランティア警戒 [蚤の市★]
- 【野球】菅野智之 WBC出場熱望 取り戻したい8年前の“忘れ物” 36歳全力「ラストチャンス」 現在はFA「無職」 [ぐれ★]
- ガザの死者7万人超える 停戦後も止まらないイスラエル軍の攻撃 [蚤の市★]
- 公務員、町の関連団体の口座から570万円横領して懲戒免職。「FXにつぎ込みました。マイナスで、サラ金に借りたけど足りなくて」 [389326466]
- 日本人の世論「中国で商売してるおまえが悪い」 イベント中止ミュージシャンに対する意見が形成される [279254606]
- 「蟹江敬三」👈お前らがこの人について知ってること [977261419]
- ミュージシャン「こんなバカが国のトップなの」→「馬鹿と言ったのは稚拙だった。中国政府を擁護する意図はない」と釈明 [313077826]
- 🏡
- トリッカルもちもちほっぺ大作戦やろうぜ
