LoginSignup
6
7

More than 5 years have passed since last update.

『プログラマの考え方がおもしろいほど身につく本』で学んだ問題解決の考え方

Last updated at Posted at 2016-09-08

問題を細分化して考える。

ある問題を解こうとした時、そのまま解くのではなく、細分化して考えることが大切。

問題の類似を考えて、応用できないかを考える。

細分化と繋がってくるが、まずは類似した問題を以前解いたことがないかを考える。

例 以下の図形を作るプログラムを考える。(本書ではC++で書かれているが、僕はJSで書く。)

########
######
####
##

手順①

#だけ出力するプログラムを書く

document.write('#');

手順②

########を出力するプログラムを書く

for (var i = 0; i <= 8; i ++){
     document.write('#')
};

手順③

########
########
########
########
を出力するプログラムを書く。

for (var i = 0; i <= 4; i++){
     for(var j = 0; j <= 8; j++){
          document.write('#')
     };
     document.write('<br>')
};

手順④

########
######
####
##
を出力するプログラムを書く。

for (var i = 0; i < 4; i++) {
     for (var j = 0; j < 8 - i*2; j++) {
          document.write('#')
     };
     document.write('<br>')
};

結論

図形の全体を出力するプログラムを一気に組もうとすると大変。
だから、小さい部分から初めて、徐々に大きくしていくことが大切。

類似としては、

########
########
########
########

を初めに考えて、次に

########
######
####
##

を作るためにどうするかを考えれば良い。

以上。

6
7
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7