[Hellcoders]Study 8日目
🔥 今日一日は?
自己紹介ページの作成
Who Page
を作成し、ページごとに必要な内容を変更しました.以前はページを設計していましたが、ページを作成するにはコンサルタントや表示部分が欠けていると考えられていたため、レイアウトを変更する方法を考えていました.計画や設計が正確に完成していないため、修正作業が多く、プレッシャーも大きい.(他の学習グループのメンバーがゆっくり履歴書を入れて面接に行くので、焦りを感じますか?😭)
Who page
は、最初のロード時に順次表示されるアニメーションを追加し、gridを使用して全体的なレイアウトを設定しようとします.gridはまだ熟知していないので、もっと勉強して、よく使って、できるだけ早く熟知する必要があります.grid-mtemplate-rows、grid-mtemplate-columnsを使用して容器の部分を設定するので便利です.反応型を表すときにも大きな助けになりました.
TIL:デザインパターン
今日のレッスン🧑💻
=>設計モードは設計手法であり、設計方法である!
1.設計モードの目的
単一責任の原則:クラスは1つの役割しか果たせません.
オープンクローズの原則:拡張(継承)で開き、修正(Modify)で閉じます.
Liskov Substitution Principle(リスク交換の原則):子供は常に親の位置に置き換えられなければならない.
インタフェース分離の原則:インタフェースはよく分離されており、クラスに必要なインタフェースだけを実現します.
バージョン依存:親モジュールは子モジュールに依存できません.どちらも抽象に依存し、抽象は細部に依存してはならない.
作成モード:オブジェクトの作成方法を決定します=>オブジェクトの作成と組み合わせをカプセル化し、特定のオブジェクトが作成または変更されたときにプログラム構造に大きな影響を受けないように柔軟性を提供します.
Structure Mode Structure Mode:オブジェクト間 組織関係=>クラスまたはオブジェクトを組み合わせてより大きな構造を作成するモード(異なるインタフェースを持つ2つのオブジェクトを組み合わせて単一のインタフェースを提供するモード、または異なるオブジェクトを組み合わせて新しい機能を提供するモード).
動作モードどうさもーど:オブジェクトの 動作の組織、管理、連合=>オブジェクトまたはクラス間のアルゴリズム、責任割り当ての関連モード.これは、1つの宿屋で一人ではできないタスクを複数のオブジェクトに割り当てる方法に重点を置く方法です.
🤬 アルゴリズムを解く
ゲームマップ最短距離
function solution(maps) {
// 1.
const dy = [1,0,-1,0];
const dx = [0,1,0,-1];
const row = maps.length;
const col = maps[0].length;
// 2.
const visitCount = [...maps].map((r) => r.map((c) => 1));
// 3.
const queue = [[0,0]]; //시작점
// 4.
while(queue.length) {
const [y, x] = queue.shift();
// 5.
for(let i = 0; i < 4; i++ ) {
const ny = y + dy[i];
const nx = x + dx[i];
// 6.
if(ny >= 0 && nx >= 0 && ny < row && nx < col) {
// 7.
if(maps[ny][nx] === 1 && visitCount[ny][nx] === 1) {
visitCount[ny][nx] = visitCount[y][x] + 1;
queue.push([ny,nx]);
}
}
}
}
// 8.
return visitCount[row - 1][col - 1] === 1 ? -1 : visitCount[row - 1][col - 1];
}
Reference
この問題について([Hellcoders]Study 8日目), 我々は、より多くの情報をここで見つけました https://velog.io/@smart5265988/HellCoders-Study-8일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol