1 名前:デフォルトの名無しさん mailto:sage [2018/04/24(火) 20:45:14.49 ID:ZY7R7Sru.net] プログラミングのお題スレです。 前スレ プログラミングのお題スレ Part10 https://mevius.5ch.net/test/read.cgi/tech/1514772904/ 【出題と回答例】 1 名前:デフォルトの名無しさん お題:お題本文 2 名前:デフォルトの名無しさん >>1 使用言語 回答本文 【ソースコードが長くなったら】 (オンラインでコードを実行できる) https://ideone.com/ codepad.org/ compileonline.com/ rextester.com/runcode https://runnable.com/ https://code.hackerearth.com/ melpon.org/wandbox https://paiza.io/ 宿題は宿題スレがあるのでそちらへ。
952 名前: /;#first, second undef $keyf; undef $keys; for $k (keys %h){ $keyf = $k if grep /$f/, @{$h{$k}}; $keys = $k if grep /$s/, @{$h{$k}}; } if(!defined $keyf and !defined $keys){ push @{$h{$.}}, $f; push @{$h{$.}}, $s; }else{ push @{$h{$keys}}, $f unless defined $keyf; push @{$h{$keyf}}, $s unless defined $keys; } } map{print join " ", (sort{$a cmp $b}@{$h{$_}}), "\n"}keys %h; [] [ここ壊れてます]
953 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 11:37:05.45 ID:HHLUVU7a.net] >>930 これもマージ処理>>928 が抜けてない? https://ideone.com/NAvn2f
954 名前:デフォルトの名無しさん [2018/09/13(木) 12:31:55.31 ID:cU5S5NHG.net] >>928 両方が既に入ってるなら何もする必要ないと思うのだが。
955 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 13:14:56.32 ID:EC7Fu/Zv.net] >>932 https://paiza.io/projects/YTmp_QaHw0hpHqxX4cBGKw 入力 A B C D A C 出力 A B C C D 期待される出力 A B C D じゃろ?
956 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 14:17:54.21 ID:q0HzNtar.net] >>912 >>933 %h; while(<>){ chomp; ($f, $s) = split / /;#first, second undef $keyf; undef $keys; for $k (keys %h){ $keyf = $k if grep /$f/, @{$h{$k}}; $keys = $k if grep /$s/, @{$h{$k}}; } if(!defined $keyf and !defined $keys){ push @{$h{$.}}, $f; push @{$h{$.}}, $s; }elsif( (defined $keyf and defined $keys) and !($f eq $s) ){#merge push @{$h{$keys}}, @{$h{$keyf}}; delete $h{$keyf}; }else{ push @{$h{$keys}}, $f unless defined $keyf; push @{$h{$keyf}}, $s unless defined $keys; } } map{print join " ", (sort{$a cmp $b} @{$h{$_}}), "\n"} sort{$a <=> $b} keys %h;
957 名前:デフォルトの名無しさん [2018/09/13(木) 20:39:52.56 ID:0RheZyur.net] >>933 あー。なるほど。そういうことか。 また考えよう。
958 名前:デフォルトの名無しさん [2018/09/14(金) 03:38:24.35 ID:SYmkUqRw.net] >>928 >>927 は修正した。(URL同じ)
959 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 04:53:58.08 ID:Z6RVr7Qr.net] >>936 差し支えなければ修正前のコードも別URLで再掲載してもらえますか? あるいは公開バージョンの履歴や差分を参照する機能がpaoza.ioにあったら教えてください くしくもマージを考慮「しない版」と「する版」が出揃ったのでどういう修正で対処したか調べると それぞれの言語の(あるいはアルゴリズムの)特徴が際立って面白いのではないかなぁとふと思ったので
960 名前:デフォルトの名無しさん [2018/09/14(金) 08:32:54.25 ID:SYmkUqRw.net] >>937 すまん。前の版はもうない。paiza.ioはそういう機能はない。 思い出して時間があったらなんとかする。
961 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 09:31:32.78 ID:PJYnZf+K.net] >>938 あーいやそこまでしなくても結構です。ありがとうございます!
962 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 12:57:38.55 ID:q6Zv3uN7.net] わざわざ書こうとしてくれるなんて良いやつだな
963 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 18:45:13.33 ID:9KWktx64.net] >>937 >>933 が>>927 の古いコードのコピペ
964 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 20:03:21.13 ID:Z6RVr7Qr.net] >>941 おおありがとう!
965 名前:デフォルトの名無しさん [2018/09/14(金) 20:39:39.94 ID:cNoNQyuv.net] >>941 おお。ナイス。
966 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 20:50:46.38 ID:SK0cQL9c.net] 結構みんな人の書いたコード読んでるんだな いい意味でびっくり
967 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 23:34:38.18 ID:vS2kVSOd.net] 逆になんで読まないの?
968 名前:デフォルトの名無しさん [2018/09/15(土) 00:06:11.66 ID:/ZWEPMk/.net] >>912 Rubyで。 https://ideone.com/MEO7XO
969 名前:デフォルトの名無しさん [2018/09/15(土) 08:52:18.54 ID:/ZWEPMk/.net] >>946 訂正。Rubyで。 https://ideone.com/er8XUC
970 名前:デフォルトの名無しさん [2018/09/15(土) 18:55:39.79 ID:Q0ygbCVz.net] >>947 とは別の戦略。 Rubyで。 https://ideone.com/osABKT
971 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 19:09:51.94 ID:1YQGrLsT.net] >>948 ソート忘れてんよ
972 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 00:15:22.99 ID:+Pq0rgCm.net] >>949 付けといて。
973 名前:デフォルトの名無しさん [2018/09/16(日) 08:13:10.07 ID:qJ8HI8bW.net] >>912 Rubyで。ソート、コメント付き。 https://ideone.com/9RyjEF
974 名前:デフォルトの名無しさん [2018/09/18(火) 20:26:30.74 ID:iTEamDZZ.net] https://www.rco.recruit.co.jp/career/engineer/entry/ ↑ この問題どうですか? 自分でも書いてみたのですが合ってるかちょっと分かりません C# https://ideone.com/KNpwLL
975 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 20:38:45.88 ID:qJ7HW+J2.net] こういうのって答え公開してもいいんか?
976 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 20:48:39.65 ID:sp2kbyYS.net] 企業がやってるのって大体駄目だったと思うで
977 名前:デフォルトの名無しさん mailto:sage [2018/09/18(火) 20:49:39.59 ID:Iw2LHuqq.net] >>953 あくまでも過去の出題例、だからいいんじゃないですか?
978 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 00:29:21.73 ID:gYIP5Vsu.net] アウトかセーフか分からないときは答え公開しないほうが無難
979 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 01:18:48.14 ID:pHq1DkBS.net] >>956 アウトになる条件は、「エントリー後メールにて送付されるコーディング試験問題は、当社への応募以外の目的で無断使用しない」…@ だが、>>952 のリンクの問題は「エントリー後メールにて送付されるコーディング試験問題」ではないから@に反しない…A さらに、無条件に誰でも見ることのできる問題であること…B Aよりアウトではないと断定できるし、BがAの結論を補強する 結論として、>>952 のリンクの問題を公開しても問題ない >>956 「アウトかセーフかわからない」という結論にどういう道筋で到達したの?
980 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 19:43:34.67 ID:KaiQ4rsk.net] お題:コンプリートパネル(出展:高校生クイズ2018) 5×5のパネルが与えられる。各パネルは赤色か白色である。 各パネルに侵入すると、そのパネルの色が赤なら白、白なら赤に変化する。 最初のステップは、場外(左下のパネルの左隣)から左下のパネルへ侵入することである。 以降のステップでは、上下左右に移動することができる。 ただし、ひとつ前のパネルや場外に移動することはできない。 すべてのパネルを白色にするための移動経路を構成せよ。 WWWRR WWWWR WWWWR WWWRR RRRRW => 10 RRRRURUUUL (→→→→↑→↑↑↑←) WWWWW WWWWW WWWWW WWWWW WWWWW => 0 (移動の必要なし) WWWWW WWWWW WWWWW WRWWW WWWWW => 21 RRRRULULLDDRULURRDRDL (必ずしも最短経路である必要はない)
981 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 19:51:24.03 ID:WMjcSrAA.net] >ひとつ前のパネルや場外に移動することはできない 全部踏めばいいんだからライツアウトの解法の亜種で解けるんじゃねえの
982 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 19:59:02.78 ID:ZUIw2oHI.net] 状態を変えずに任意の場所まで移動できるなら 6箇所だけそれぞれ1つだけRだった場合を計算してあとは回転なりなんなりして重ね合わせればいけるな
983 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 20:34:03.00 ID:WMjcSrAA.net] ↑ □□□ □□□→ 2*3の全パターンで、この二つの方向のどちらかに抜ける経路が存在すればいい あとは合成で何とかなる
984 名前:デフォルトの名無しさん [2018/09/19(水) 21:11:11.50 ID:zcXFtBV7.net] うーん。これはブルートフォースでやろうとするとかなり無駄が多くなって時間とメモリを山盛りに食いそうな予感。
985 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 23:00:29.71 ID:gYIP5Vsu.net] 5x5=25マスの赤or白の2値だから25bit、現在位置25通り(5bit)に前回位置相対で4通り(2bit)、あわせて32bitパターン?
986 名前:デフォルトの名無しさん mailto:sage [2018/09/19(水) 23:25:52.07 ID:WMjcSrAA.net] 5x5は序の口で、100x100くらいが本命でしょう ついでに最短の最適解も 問題も作るだけならラクだから1000x1000だって0.1秒程度で作れる もちろん解くのは面倒
987 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 01:27:25.92 ID:B4lxWLis.net] >>958 手でしか試してないけど 解けないパターンとかありそうな予感 https://i.imgur.com/u8zgEum.png
988 名前:デフォルトの名無しさん [2018/09/20(木) 09:43:56.68 ID:cMPVhU9i.net] プログラム考える以前に解くためのいいアルゴリズムが思い浮かばん
989 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 12:37:05.73 ID:B1/3j8uv.net] 辺の長さが3以上の時は戻るの禁止ってルールは実質的に無視できそうだな というのも閉路を2周すれば元通りに戻るわけだから xxx x↓x x↑x 上に行ってまた下に戻るって進みたいときは →↓x ↑←x // 中央「←」を3回目に踏むときは下に進む x↑x ってすればいいわけで 2*2 かどちらかの辺が 1 の場合以外は任意のパターンで解があることになる
990 名前:デフォルトの名無しさん mailto:sage [2018/09/20(木) 23:43:04.82 ID:uzQ90Fqy.net] RWWWR WRWWW RWRWW RWWRW WRRWR 全てのパターンが解けて最長がこの形で44手かかる となったけどできたばかりだからまだまだバグがありそう
991 名前:デフォルトの名無しさん mailto:sage [2018/09/21(金) 23:11:26.91 ID:1M+bqJR8.net] https://ideone.com/S7UA0k 表示までできるようになったので ここでは5秒超えるので結果表示されないみたい 10年前のノートで2分半かかる 結果はこんな感じ - - - - - - - - - - - - - - - - x - - - - - - - - RRRRULDRULLDL 13 x - - - x - x - - - x - x - - x - - x - - x x - x RRRRRUUUULLLLDDDDRRRURUULDLDDLUURDLURRUULLDL 44
992 名前:957 mailto:sage [2018/09/22(土) 13:39:38.33 ID:EQZKU8B1.net] 最適解ではないが、人間にも実行可能なアルゴリズムを考えた 上のラインから順番に確定させていく感じ https://ideone.com/nUgNh3
993 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 05:22:08.89 ID:QL0eQEru.net] 解法全然分からないけど 枝狩りもメモ化もせず愚直に全探索すると44手目で10760814742109228通りになるのか…ヤバイな codepad.org/JXkGjMKb
994 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 06:45:48.27 ID:QL0eQEru.net] >>971 メモ化のみの全探索でも厳しいね https://ideone.com/TpZyFM
995 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 07:02:07.82 ID:QL0eQEru.net] >>963 の理屈上なら>>972 のstepの累積和が3,355,443,200(=25<<27)になった時点で全通り出たことになって最短の上限になるのかな?
996 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 10:53:27.77 ID:daMeAE67.net] ttps://cdn-ak.f.st-hatena.com/images/fotolife/m/motcho/20180127/20180127034515.png 連続殺人犯が全ての目撃者を消して完全犯罪を目論む
997 名前:デフォルトの名無しさん [2018/09/23(日) 12:36:34.31 ID:FE85zabB.net] 文字列のペアがn対与えられる。 s(1),t(1) ... s(n),t(n) この時、ペアを適切な数選び適切な順番で並べる事で s(a1)s(a2)...s(ak) = t(a1)t(a2)...t(ak) とできるかどうか判定せよ (ペアを重複して選ぶのもOK)
998 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 12:41:57.26 ID:A0stA7Ax.net] >>975 それって「s(i)=t(i)となるiが1つ以上存在するか」というだけのように思えるけど、違うかな?
999 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 12:42:44.79 ID:A0stA7Ax.net] >>976 は勘違いでした。取り消します
1000 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 13:27:09.60 ID:yBlaBAG2.net] >>976 最初全く同じこと思ったわw でもこれって十分条件に過ぎないんだな a ab bc c s(1)s(2) = t(1)t(2) = 'abc'
1001 名前:デフォルトの名無しさん mailto:sage [2018/09/23(日) 17:12:26.93 ID:daMeAE67.net] 応用だけは思い付いた ATCGTTGTAC, AAATTTCTCTCTTTCT GTGATGCGTTGCAGGT, ATGCCATGTGAC AAATTGCTGAC, ATGTTGCGTC ATGCGTACCCACG, AGTGCGTTCGTAC ...(以下、1万行続く)
1002 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 12:45:56.45 ID:ZWCrk0/p.net] >>975 空文字列は含むの?
1003 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 14:31:45.91 ID:twjLvrgB.net] 重複しても良いってなっているのでどうやっていいか分からなくなった。 重複なしなら単に順列の問題で全パターン調べれば良いだけなんだけどな。
1004 名前:デフォルトの名無しさん [2018/09/24(月) 14:56:44.30 ID:hAv+WLv3.net] >>980 含むと何も並べなければOKって事になりそう
1005 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 15:56:26.13 ID:IwP3sRIS.net] >>982 結果じゃなくて入力に 一つも選ばないのがOKならそもそも問題として成立しないだろ
1006 名前:デフォルトの名無しさん [2018/09/24(月) 16:14:35.67 ID:twjLvrgB.net] >>975 Kotlin 但し、重複選択は考慮していない。 https://paiza.io/projects/iRHJjFRj9BJIydX10SIn0Q
1007 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 19:57:46.70 ID:6VO2RDhD.net] >>970 ルール合ってるのかどうか知らないけど ゲーム風にしてみた (Win専用) fast-uploader.com/file/7093342064119/ PASS:11957 慣れると何となく解き方のコツが見えてくる 今まで解けなかった例は無さげ
1008 名前:デフォルトの名無しさん mailto:sage [2018/09/24(月) 20:25:58.77 ID:8mxLASGw.net] 任意のパターンで解けることはここですでに言及されてるよ
1009 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 00:18:48.94 ID:sMuinsuC.net] エビングハウスの忘却曲線っていって人間のベストな復習間隔があるんだけど 例えば今日勉強したことは明日復習して3日後、1週間一ヶ月ごとに復習すると完全に長期記憶になる これをスマホアプリで管理するプログラミングしたい 理屈は簡単、カレンダーに今日覚えたことを「○○の20-40ページ」とか記入して 明日になったら今日やる復習を表示してくれるシステム プログラミングのプの字も知らんのだ どの言語を使うとかもわからんmacとxcodeはある どういう作り方すればいいかわからない教えてください個人用に使う
1010 名前:デフォルトの名無しさん mailto:sage [2018/09/25(火) 02:12:07.33 ID:JXqOIinx.net] ここはそういうスレではないよ
1011 名前:デフォルトの名無しさん [2018/09/25(火) 02:40:25.79 ID:VjhU4mZC.net] >>987 このスレはそういう質問するスレではなく、誰かがお題を出して回答したい人がプログラミングして回答するスレだ。 そういう質問はまずは既存のソフトでそういうことが出来るのがないか以下のスレで聞いた方が良いと思う。 気軽に「こんなソフトありませんか?」Part.176 https://egg.5ch.net/test/read.cgi/software/1529929775/ それからどうしてもプログラムを自分で作ってみたいというのであれば何らかの言語を覚える必要があるが、 MacやiPhoneの場合は何が良いのか俺はよく知らない。この頃だと Swift なんだろうか? Swift は確か xcode 使って作れたと思うが、詳細は今の俺には分からん。MacOSやiOS関係のスレを探して聞いてくれ。
1012 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 22:18:07.66 ID:/SCmCNkm.net] お前らってファイルそのものへの参照を禁止したうえでquineを自力で書ける?
1013 名前:デフォルトの名無しさん mailto:sage [2018/09/27(木) 23:09:56.51 ID:TEegUJED.net] もう少し詳しく
1014 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 01:19:09.36 ID:voc6Rn8M.net] 次スレは
1015 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 10:09:57.20 ID:phwOkayR.net] 次スレ プログラミングのお題スレ Part12 https://mevius.5ch.net/test/read.cgi/tech/1538096947/
1016 名前:デフォルトの名無しさん [2018/09/28(金) 21:10:47.83 ID:WW7qy9i/.net] 埋め
1017 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:28:45.12 ID:CwsEryp/.net] うめ
1018 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:28:53.05 ID:CwsEryp/.net] うめ
1019 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:01.92 ID:CwsEryp/.net] う
1020 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:15.02 ID:CwsEryp/.net] め
1021 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:28.35 ID:CwsEryp/.net] あさうめ
1022 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:36.27 ID:CwsEryp/.net] うめ
1023 名前:デフォルトの名無しさん mailto:sage [2018/09/28(金) 21:29:44.58 ID:CwsEryp/.net] うめ
1024 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 157日 0時間 44分 30秒
1025 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています