見出し画像

プログラミング学習記録【9日目】

無知は罪なり

やっておけばよかった、知っておけばよかったと思うことがたくさんある。
スクレイピングやディープラーニングは存在を知ったときにもっと掘り下げればよかったし、音楽的な知識や機械的な知識といったものは独学で学ぶには時間がかかりすぎる。
以前からDTMには興味があるのだがどこから手を付ければいいかわからない。PSYCHO-PASSを見たあと、プロファイリングに興味を持ったが、何を勉強すればいいかがわからない。キャンプは、パルクールは、断食は…。
入り口がわからなくて躊躇してしまうことは非常に大きい。
ここまで来ると、金銭的な理由より大きな理由と言える。
情報化社会が進み、以前よりハードルの下がった項目もいくつかあるが、そうした初心者向けの紹介記事を書いているものは大体が意識高い系の文体で鼻についてしまう。(偏見)
しかし彼らは、自分には踏み出せなかった入り口を突破しある程度深みまで踏み入った者共だ。少なくとも入口前で立ち止まる自分には馬鹿にする権利もないだろう。
みんな大好きソクラテスさんも言うように、無知は罪なのである。
まずは知るところから始めるとしよう。

2.02.多重ループ

ループの中にループもできるよって話でした

EX17.果物屋さんでお買い物

i番目のリンゴ・パイナップルがそれぞれAi、Pi円でN個売られている。
それぞれを1つずつ選んで購入するとき、合計金額がS円になるのは何通りになるか、出力するプログラムを作る。

入力までは問題文で与えられているのでループ→出力まで作ればおk。
作りたいループはi番目のリンゴとj番目のパイナップルの値段を配列から読み取るもの。条件分岐は合計金額がS円になるかどうか。早速作ってみる。
まずループ部分は、

for (int x = 0; x < N; x++){
   for (int y = 0; y < N; y++){

で二重ループにし、総当たりできるようにした。
中身のif文は合計がS円かどうかを分岐条件にし、trueの場合予め用意しておいた変数answer=0に1追加するようにした。
プログラム全文は以下の通り。

#include <bits/stdc++.h>
   using namespace std;
    
   int main() {
     int N, S;
     cin >> N >> S;
     vector<int> A(N), P(N);
     for (int i = 0; i < N; i++) {
       cin >> A.at(i);
     }
     for (int i = 0; i < N; i++) {
       cin >> P.at(i);
     }
    
     // リンゴ・パイナップルをそれぞれ1つずつ購入するとき合計S円になるような買い方が何通りあるか
     int answer = 0;
     for (int x = 0; x < N; x++){
         for (int y = 0; y < N; y++){
             if(A.at(x) + P.at(y) == S){
                 answer ++;
             }
         }
         
     }
     cout << answer << endl;
   }

コンパイルは無事できていたので、これで提出。

画像1

今日はあっさり。
断捨離は思ったより進まない。
ゴミだけは大量に出てくるのだが、これってどうやって捨てればいいのだろうか。
そもそも自分はいらないが捨てるのがもったいないものは、フリマアプリとかに登録しとけば貰い手って現れるんだろうか。
こういったところまで、無知は罪なのである。
明日は調べ物デー。


この記事が気に入ったらサポートをしてみませんか?