メメメモモ

プログラミング、筋トレ、ゲーム、etc

D - Unicyclic Components

atcoder.jp UnionFindだろうと思ったが、ACLの使い方の理解が浅かったので、BFSで解いてしまった。 void solve(long long N, long long M, std::vector<long long> u, std::vector<long long> v){ vvl G(N+9); REP(i, M) { G[u[i]].push_back(v[i]); G[v[i]].push_back(v[i]); } vb</long></long>…

C - Brute-force Attack

atcoder.jp 再帰的なDFS。 パッと書けるようにしたい。 void dfs(string S, ll n) { if (n==0) { cout << S << endl; return; } REP(i, 3) { S.push_back('a'+i); dfs(S, n-1); S.pop_back(); } } void solve(long long N){ dfs("", N); }

イシュードリブンでソフトウェアを作るための手順 - ChatGPT編

はじめに ソフトウェア開発では、問題を解決することが最も重要な目的です。しかし、実際の開発プロセスでは、技術的な課題やプログラミング言語の複雑さによって、手段が目的化してしまうことがあります。以前、私は「イシュードリブンでソフトウェアを作る…

ChatGPTで書くブログ記事: そのメリットとデメリット

1. ChatGPTでのブログ記事作成の驚くべき簡単さ 先日、ChatGPTを使ってブログ記事を書いてみたところ、驚くほど簡単に記事が作成できてしまった。これには正直、驚かされた。 2. ブログの目的とChatGPTの活用方法 ブログの目的によっては、ChatGPTの活用方法…

ChatGPTとエンジニアの未来: 新たな役割と成長の重要性

1. AIの進化とエンジニアの役割 ChatGPTの進化により、さまざまなタスクがAIに置き換わっている。これを受けて、エンジニアとして新たな役割と成長が求められる時代が到来している。 2. 重要なスキルと視点 問題解決や仕事がAIに置き換わる中、どのような問…

動画サービスや音声サービスでインプットしている情報

概要 技術的なインプットは本で行い、その他のインプットは動画や音声で行う、といった使い分けをしています。各種の動画・音声サービスで、自分がどのような情報をインプットしているのかを書き出してみました。 YouTube www.youtube.com なんだかんだでYou…

イシュードリブンでソフトウェアを作るための手順

はじめに プログラマの仕事は、端的に言うと問題を解決するソフトウェアを作ることです。 ソフトウェアを作るために、さまざまなプログラミング言語やオブジェクト指向やDDDやアジャイルなどの手法があります。こういった実装技術はとても奥が深く、勉強して…

ブロックとキャラの当たり判定アルゴリズム

ブロックとキャラの当たり判定アルゴリズムについて考えています。 当たり判定の考え方としては、 「キャラ(自機)の中心の座標が、ブロックの中心から角をつないだ線よりも左側にあるか右側にあるか」を判定する形になります。 「ある点がある線よりも左側に…

「現場で役立つシステム設計の原則」を読んだ

現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: 単行本(ソフトカバー)この商品を含むブログ (1件) を見る 分析や設計について勉強したいと思い、読…

「デザインとプログラミング 2018」の講義資料を読んだ

デジタルアートに関することが学びたくて読みました。 デザインとプログラミング 2018 yoppa.org ブラウザ上で動作を確認しながら読み進めました。 editor.p5js.org 以下のことが一通り学べます。 Processingの基礎 画像データから絵を書く サウンドデータか…