![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_13.png?8acaa2e)
競技プログラミングを初めてまだ間もなく、現在アルゴリズムの勉強を本を購入してやっています。基本の基本、ソート辺りまでは良かったのですが、現在「木」(二分木など)に入り、躓きました。
AOJを主軸としてプログラムの練習をC++で行っているのですが、難易度が上がるにつれ、考えても分からず、他の方の解答例を見ても「こんなコード思いつかない!」「見ても理解に時間がかかる!」というものばかりです。
やはり才能というものもあると思うのですが、勉強の仕方としてはどのような方法が良いのでしょうか。今私が取り組んでいるような問題にどんどんチャレンジしていく、というやり方も経験を積むという面では一つの道だと思うのですが、「分からない!」ということがここまで多くなると正しいのか分からなくなってしまって...。
抽象的な質問になってしまいましたが、回答いただけると幸いです。
No.3ベストアンサー
- 回答日時:
こんばんは。
私は、C++は今のところ扱いませんが、アルゴリズムを多少は勉強しました。アルゴリズムというものは、言語に依存性がありません。私の知る範囲では、一部はコンピュータのない時代から考え出されたものもあり、その考えた人は天才的な数学者だったりしますから、到底、私などには歯が立つとは思えません。プログラミングとしては、よく使うものは、テンプレートやスニペットにしてしまいます。
私は、手順全体は丸暗記しておいて、何度も使っている間に、完全に理解することを期待するしかないと思っています。どういう問題に、どのアルゴリズムを使うかさえ分かれば、それ以上は、競技としては別かもしれませんが、私は困らないと思います。
そもそも、アルゴリズムは、問題を解くための解法の論理や手順ですから、そういう問題に当たらなければ、まったく意味のないことだと思います。あくまでも、解を求めるものだと思います。実際に、問題に対処する場合、どんな方法でも可能なのですが、その時に、2分探索木が使えるとひらめく事自体が重要だと思います。ふつうでは、思いつかないからです。
アルゴリズムを知識として身に着けて置き、使い方は自分次第!問題の種類に対して、どのアルゴリズムが当てはまるか、というのを把握しておくべきですね。
回答ありがとうございました。
No.2
- 回答日時:
日常的な行動のアルゴリズム例
START:
就寝中
目覚まし時計をセットした時間が来た
目覚まし時計が鳴る
・起きる→ENDに進む
・起きない
STARTに戻る
END:
上記の例では、目覚まし時計が鳴っても起きなかった場合には、
ずっと眠りっぱなしの無限ループに入ってしまう。
これを、実際の行動に合わせる為に
・目覚ましが鳴る前/後に起きる
・一旦起きたが、また寝る
・寝過ごした
・遅刻になるが出かける
・風邪をひいた事にして休む
・目覚まし時計を止めなければ、一定時間後に再度鳴る(最大◯回)
・目覚まし時計をセットし忘れた
等々の条件を増やしていって、どこまでいけるか。
もしくは、無駄の少ないアルゴリズムを作れるかを試行錯誤
してみる。
日常をアルゴリズムとしてとらえ、考える(実装する)ことが重要!ですね。確かに、ソートとか木とかにとらわれないで、普段から慣れ親しむことが一番かもしれません。
回答ありがとうございました。
No.1
- 回答日時:
書籍に載っているようなソートや「木」(二分木など)のようなアルゴリズムは、
必要になったら書籍を見るか、前に他のプログラムで作ったのを流用する事が
多いので、こんな処理をする為のコードが有る程度に考えるぐらいでも大抵の
場合には支障は有りません。
アルゴリズムの勉強という点では、普段の日常的な行動をアルゴリズム化して
みる方が役に立つと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学受験 お急ぎの質問です。 現在高3受験生です。次の金曜日に明治大学総合数理学部(現象数理科)の学部別試験が 3 2023/02/13 23:38
- IT・エンジニアリング ITエンジニアの勉強時間や勉強方法について 初めまして閲覧いただきありがとうございます。 当方25歳 4 2022/06/09 18:51
- 宅地建物取引主任者(宅建) 宅建の勉強方法について。 今年の宅建試験に向けて勉強をしています。 今は、分かって合格るシリーズのテ 1 2023/05/16 01:37
- 高校受験 高校受験 社会が一向に伸びません… 暗記は苦手ではないです。(むしろ得意です。) けれど模試だったり 4 2023/01/03 16:42
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 高校受験 数学の問題いくつか捨てても大丈夫?残り1ヶ月、点数が取れない教科ばっか勉強しても大丈夫? 高校受験 2 2023/01/07 17:55
- 発達障害・ダウン症・自閉症 中学の時にIQ82の境界知能と診断されました。 今の私も、やはり境界知能でしょうか? そしてこれは、 3 2023/02/19 00:37
- 大学受験 大至急お願いします。 今高校3年生で浪人が決まりました。 まずは自己分析しようと思って、 なぜ現役で 5 2023/01/20 10:35
- 簿記検定・漢字検定・秘書検定 [簿記] 簿記に詳しい方や、日商簿記2級に合格した方に質問です。 学生です。 -日商簿記の2級を取り 1 2023/01/17 02:50
- 大学受験 大学院入試があります。不安です。 3 2022/07/31 00:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正しい五十音順について
-
[ EXCEL VBA ] 図形を読み込む...
-
アルゴリズムとプロトコールの違い
-
あいまい検索(文字列一致率)
-
期間重複チェックがわかりません
-
一番近い組み合わせを見つけるには
-
ゲームプログラミングC/C++、SR...
-
シードを考慮したトーナメント...
-
優先順位を決定するアルゴリズム
-
ランダム関数を作りたい。
-
複数の点を最短距離で全て繋ぐ...
-
vbaで、連立方程式を解く方法に...
-
深さ優先探索(再帰なし&あり)
-
データを圧縮したい
-
六曜の自動計算について
-
ベイチ・カルノー図以外のとき方。
-
基本情報技術者試験の勉強方法...
-
アルゴリズムの勉強の仕方について
-
フリーセルの難易度について
-
中置記法から後置記法(逆ポーラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
正しい五十音順について
-
アルゴリズムとプロトコールの違い
-
BCDについて
-
[ EXCEL VBA ] 図形を読み込む...
-
Stuck
-
グループを均等に分けるには?...
-
画像から文字を認識してテキス...
-
Dijkstraて
-
期間重複チェックがわかりません
-
JPEG圧縮で8×8に分割する理由に...
-
多変数関数の最小値を求めるプ...
-
OpenCVのライセンスについて
-
データを圧縮したい
-
ルービックキューブを揃えるた...
-
5人のテストの点数を入力すると...
-
C♯で電卓を作成しています。演...
-
ドロネー三角形のプログラム
-
vbaで、連立方程式を解く方法に...
-
動画で間違ったこと言っている
-
トップダウン解析とボトムアッ...
おすすめ情報