shiki0331’s blog

Web Developer. TypeScript / React.js を中心に学んでいます。 ブログ内容で間違っている箇所などありましたら、ご指摘していただけると助かります。

Solving the 'Zigzag Conversion' on LeetCode with C++

問題 https://leetcode.com/problems/zigzag-conversion/ 答え class Solution { public: string convert(string s, int numRows) { if(numRows == 1) { return s; } vector<string> rows(min(numRows, int(s.size()))); int currentRow = 0; bool goingDown = false</string>…

C++でLeetCodeの「Longest Palindromic Substring」問題を解く

Problem https://leetcode.com/problems/longest-palindromic-substring/ Answer O(N3) class Solution { private: bool check(string &subString, int subStringSize){ int i = 0; while(i < j) { if(subString[i] != subString[j]) { return false; } i++;…

C++でLeetCodeの「Longest Substring Without Repeating Characters」問題を解く

Problem https://leetcode.com/problems/longest-substring-without-repeating-characters/ Answer class Solution { public: int lengthOfLongestSubstring(std::string s) { std::unordered_map<char, int> map; int maxLength = 0; int left = 0; for (int right = 0</char,>…

C++でLeetCodeの「Add two numbers」問題を解く

Problem https://leetcode.com/problems/add-two-numbers/description/ Answer /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nu…

TypeScriptにおける Record 型の実装を理解する

TypeScriptのRecord型とは? まず、TypeScriptのRecord機能について説明します。 Record型の説明は以下のURLで確認できます: https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type Record型は、2つの型を受け入れることで、あ…

C++でLeetCodeの「Two Sum」問題を解く

## Problemhttps://leetcode.com/problems/two-sum/description/?envType=featured-list&envId=top-interview-questions ## Answer (Brute Force)```class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { for (int i = 0; i < nums.size() - </int></int>…

「コンピュータはなぜ動くのか」まとめ。GW企画

GWなのでたくさん本を読んでいきたいと思います。 読むだけではあまり知識が定着しなさそうなので、自分で大事そうなところをまとめてアウトプットしていきますー! 「コンピュータはなぜ動くのか」 まずは1冊目の「コンピュータはなぜ動くのか」をまとめて…

CPUとは? CPUの性能を比較しよう!

CPU(Central Processing Unit = 中央 処理 装置) CPUとは、人間に例えると「脳」です。CPUの性能が高ければコンピュータの処理速度が速くなります。 ただし、画像処理に関しては主にGPUが担当しているので、CPUの性能が高くてもカバーできません。 CPUの性…

2進数から10進数 10進数から2進数への変換方法

2進数から10進数、10進数から2進数への変換方法を解説していきます! 2進数?10進数?とわからない人は下記のブログを読んで下さい。 shiki0331.hatenablog.com 2進数を10進数に変換するには、2進数の各位の数字にその位の「重み」を掛けて、すべての桁につ…

bit byte 2進数とは?

コンピュータの世界ではbitとbyteという単位があります。 他にも、KB(キロバイト)・MB(メガバイト)などの単位もあります。 これは聞いたことがある人も多いのではないでしょうか? bitはコンピュータが扱う最小単位 byteはbitが8個集まったものです。 ex…

30分チャレンジ プロになるためのWeb技術入門 第二章「Webはどのように発展したか」 前半

30分チャレンジです! 今回の第二章は長かったので前半・後半に分けます! 「Webはどのように発展したか」前半部分を要約していきます。 ※注 要約してみたら「Webがどのように発展したか」というよりも、用語の説明が多くなってしまったのでご了承ください、…

15 分チャレンジ プロになるためのWeb技術入門 第一章「Webアプリケーションとは何か」

今回から「プロになるためのWeb技術入門 なぜ、あなたはWebシステムを開発できないのか」を読んで要約していきます。 15分で第一章「Webアプリケーションとは何か」を要約していきます。 Webアプリケーションとはなんでしょうか? アプリケーションを大きく…

振り返り KPT 2

面談で自分の考え方・価値観を伝えられるようになってきた。今までは会社の理念やミッションに近寄ろうとしてしまっていた。面談の中で質問の受け答えや、聞きたいことを質問することはできている。しかし、質問で終わってしまい会話ができていないと感じた…

振り返りKPT

最近ソニックガーデン代表・倉貫さんのブログを見てから、「振り返り KPT」を良いなと思いTwitterでやってみました。KPTの詳しくは倉貫さんのブログ見て下さい。https://kuranuki.sonicgarden.jp/2018/04/kpt-method.htmlけど、Twitterでやる意味はないかな…

20分チャレンジ リーダブルコード 第三章 「誤解されない名前」

20分で本を要約していきます!変数の名前には誤解されない名前を付けよう。あいまいな名前を付けてしまうと、コードの理解を複雑にしてしまう。filter・length・limitのような名前だとコードの意味がわかりにくい。例えばCART_TOO_BIG_LIMITの名前では未満か…

競技プログラミングを解こう part4

最近AtCoderのA問題が解けるようになってきたので「今日も余裕かな〜」と思って 解いてみたら難しかったです、、泣 けど面白い問題だったので、是非解説していこうと思います! まずは問題内容です! 問題文 文字列 S">SS が入力されます。これは、西暦 2019…

競技プログラミングを解こう part3

今回はAtcoderのB問題をやってみました〜 B問題はA問題より難易度が高いです。 下記が問題内容です。 問題文 ABC 洋菓子店では, 11 個 44 ドルのケーキと 11 個 77 ドルのドーナツが売られている.このとき, 合計金額が NN ドルとなる買い方はあるか, 判定せ…

20分チャレンジ リーダブルコード 第二章 「名前に情報を詰め込む」

本を要約するパート2です。 今回もリーダブルコードを要約します! 前回に引き続き第二章です。20分チャレンジです! 誰もが変数名から必要な情報を読み取れるような名前付けが理想的だ。 良い名前付けをする方法をいくつか説明していく。 変数名には抽象的…

10分チャレンジ リーダブルコード 第一章 「理解しやすいコード」

今回はオライリージャパンから出版されている名著である「リダーブルコード」の 第一章である「理解しやすいコード」を読んで自分なりに解釈して要約したものを10分で書いてみます。 良いコードは理解しやすいコードは優れた設計やテスト、バグの見つけやす…

APIとは?APIを叩く?

初め「APIを叩く」という言葉を聞いたときは意味不明でした。 APIってなに?叩くものなの?? みたいな感じでした。笑 APIとは Application Programming Interface アプリケーション プログラミング インターフェース です。 インターフェースは「接点」とい…

競技プログラミングを解こう part2

今回もAtCoderで問題を解いてみました〜 なんとか解けました! 問題文 高橋くんは、自動販売機でジュースを買ったときの音が好きです。 その音は 11 回 AA 円で聞くことができます。 高橋くんは BB 円持っていますが、お気に入りの音を CC 回聞くと満足する…

競技プログラミングとは? やってみよう!

競技プログラミングをやる機会があったんですが、全然できなくて悔しかったので少し勉強していこうかなと思います笑 競技プログラミングは問題をプログラミングで解いていくことです。 アルゴリズムを鍛えることができるので、やって損はないかなと思います…

〜15分チャレンジ〜 AssetsPipelineとは?

15分チャレンジとは15分で、あるお題を調べてブログに書くことです。 なので内容は薄いのでご了承ください、、笑 アセットパイプラインとは、JSやCSSのデータを限りなく小さくして連結する。それ以外にも画像などの静的ファイルも最小化してくれる。 ex).js…

CSSのflexboxを使ってfooterを下部に固定しよう!

flexboxは聞いたことがあるでしょうか? 最近はfloatよりflexboxを使用して横並びにすることが多いみたいですね〜 今回はflexboxを使用して簡単にfooterを下部に固定する方法を紹介します。 HTMLとCSS footerを下部に固定 これだけで下部に固定できます! 必…

ajaxとは?非同期通信とは?

ajaxの前に非同期通信を理解した方がスムーズに学べると思います。 なので非同期通信から説明していきます。 非同期通信とは簡単に言うと サーバーからの応答を待たずに処理を行うことです。 詳しく説明すると 通常であればホームページを閲覧するときには、…

JavaScriptの関数とは?

3日程前から「Javascript」を学び始めたのですが、思っていたよりも難しいです。。笑 (Ruby、HTML&CSSしか触ってなかったので、、) まずは知らない単語ばかりで苦労しました。 その中でもよく出てくる『関数』について説明します。 関数とは 簡単に言うと…

DOMとは?

DOMとは「Document Object Model」の略です。 HTMLやXML文書のためのプログラミングインターフェースです。 簡単にいうと プログラミング言語を使用して、HTMLの「h1」や「p」タグにアクセスする仕組みです。 アクセスすることでJavaScriptなどの言語を用い…

React? ライブラリってなに?

Reactがよくわからなかったので、Googleで調べてみました。調べると「UIのパーツを作るための、JavaScriptライブラリ」と書かれてありました。???JavaScriptを触ったこともない僕には全くわかりませんでした…なので自分で詳しく調べてみました!まず、UI…

コンピュータとは何か? コンピュータとパソコンの違い。

「コンピュータとは何か?」と質問されて答えられる人は意外と少ないのではないでしょうか。 コンピュータは英語にすると「computer」で名詞。 元々は「compute」の動詞が語源みたいです。 「compute」とは計算をする。という意味があります。 コンピュータ…

なぜプログラミング言語は何種類もあるのか?

現在プログラミング言語は200種類以上あると言われています。色々な言語があると学ぶのは大変なので、一つの言語に絞るべきでは?と思いませんか?たくさんのプログラミング言語があるのには理由があります。まずは例としてRubyとPHPの言語を簡単に説明しま…