[アルゴリズム]🏁学習アルゴリズムシリーズの開始と覚悟/プログラマー-ハッシュ-偽装問題を解く
5500 ワード
🏁学習アルゴリズムの出発点
大学卒業後、人生の転換点ともいえる「開発者」というキーワードに触れ、開発開始から1年が過ぎた.幸いにも地方にある創業会社に入社して、この1年間は本当にたくさんの勉強をもたらしてくれました.それでも、毎日Bellogや他の開発者を見ていると、本当にまだまだだと気づきました.「私は彼らと競争しなければなりませんが、もし私が退職したら、これらのできない人との競争の中で生き残ることができますか?」このような焦りを持っています.
今の会社は本当に満足していますが、私のキャリアのために、いつか会社を離れなければならないと思います.もちろん、会社も努力して会社を育成する意欲を持っていますが、自分が会社の附庸だと思わせたくないので、いつコードテストがあるか分かりませんが、今もより良いコードを書くためにアルゴリズムを勉強し始めました!
📚 心の準備
決心はいつも雄大であればあるほど諦めやすい!
水曜日の問題!あまり多くないから、一週間に3つの問題しかしないでしょう.🚀
問題を解いた後、暇を見つけて関連アルゴリズムの理論を整理します!
このように1年繰り返すと、私の不安や焦りも消えてしまいます.
プログラマ-ハッシュ-偽装
問題の説明
スパイたちは毎日違う服を着て自分を偽装している.
例えば、スパイの服が以下のように、今日スパイが丸い眼鏡、長いコート、青いTシャツを着ている場合は、翌日はジーンズを追加したり、黒いサングラスをかけたりして、丸い眼鏡ではありません.
スパイが持っている服に二次元配列の服が与えられた場合、異なる服の組み合わせの数を返すために解関数を作成します.
せいげんじょうけん服装の各行は「服装名、服装種類」からなる. スパイが持っている服の数は1着以上30着以下. のような名前の服は存在しません. アパレルのすべての要素は文字列から構成されています. すべての文字列の長さは、1または20未満の自然数であり、アルファベット小文字または「」のみから構成されます. スパイは毎日少なくとも1枚の服を着ている. 私の答え
2個のA,2個のB,2個のC,3個のD
(A+1)(B+1)(C+1)(D+1)の結果は全ての場合の数である.
しかし、少なくとも1枚の服には制限があるので、すべての場合、何も着ない場合を除けばいいのです.
まず、key-value形式でデータをソートするためにtableというオブジェクトを作成します.
服装の各行は「服装の名称、服装の種類」で構成されているので、服装の名称は服装の種類に応じて並ぶ対象のキーで、それから服装の名称を相応の種類の配列の中に置く.
次に、table[key]の長さ+1を繰り返し文で乗算する.
ボールを返す時-1処理しました!
状況の数式を知っていれば、思ったより解決しやすい問題だったのですが…数学の公式は久しぶりで、最初は迷っていました.ううう
大学卒業後、人生の転換点ともいえる「開発者」というキーワードに触れ、開発開始から1年が過ぎた.幸いにも地方にある創業会社に入社して、この1年間は本当にたくさんの勉強をもたらしてくれました.それでも、毎日Bellogや他の開発者を見ていると、本当にまだまだだと気づきました.「私は彼らと競争しなければなりませんが、もし私が退職したら、これらのできない人との競争の中で生き残ることができますか?」このような焦りを持っています.
今の会社は本当に満足していますが、私のキャリアのために、いつか会社を離れなければならないと思います.もちろん、会社も努力して会社を育成する意欲を持っていますが、自分が会社の附庸だと思わせたくないので、いつコードテストがあるか分かりませんが、今もより良いコードを書くためにアルゴリズムを勉強し始めました!
📚 心の準備
決心はいつも雄大であればあるほど諦めやすい!
水曜日の問題!あまり多くないから、一週間に3つの問題しかしないでしょう.🚀
問題を解いた後、暇を見つけて関連アルゴリズムの理論を整理します!
このように1年繰り返すと、私の不安や焦りも消えてしまいます.
プログラマ-ハッシュ-偽装
問題の説明
スパイたちは毎日違う服を着て自分を偽装している.
例えば、スパイの服が以下のように、今日スパイが丸い眼鏡、長いコート、青いTシャツを着ている場合は、翌日はジーンズを追加したり、黒いサングラスをかけたりして、丸い眼鏡ではありません.
スパイが持っている服に二次元配列の服が与えられた場合、異なる服の組み合わせの数を返すために解関数を作成します.
せいげんじょうけん
function solution(clothes) {
var answer = 1;
const table = {}
clothes.map(arr => {
// 키 유무에 따라 조건 분기
if (Object.keys(table).includes(arr[1])) {
table[arr[1]].push(arr[0])
} else {
table[arr[1]] = new Array();
table[arr[1]].push(arr[0])
}
})
for (const key in table) {
answer *= (table[key].length + 1)
}
return answer - 1;
}
状況の数式を用いて解答した.2個のA,2個のB,2個のC,3個のD
(A+1)(B+1)(C+1)(D+1)の結果は全ての場合の数である.
しかし、少なくとも1枚の服には制限があるので、すべての場合、何も着ない場合を除けばいいのです.
まず、key-value形式でデータをソートするためにtableというオブジェクトを作成します.
服装の各行は「服装の名称、服装の種類」で構成されているので、服装の名称は服装の種類に応じて並ぶ対象のキーで、それから服装の名称を相応の種類の配列の中に置く.
次に、table[key]の長さ+1を繰り返し文で乗算する.
ボールを返す時-1処理しました!
状況の数式を知っていれば、思ったより解決しやすい問題だったのですが…数学の公式は久しぶりで、最初は迷っていました.ううう
Reference
この問題について([アルゴリズム]🏁学習アルゴリズムシリーズの開始と覚悟/プログラマー-ハッシュ-偽装問題を解く), 我々は、より多くの情報をここで見つけました https://velog.io/@mickeymouse/알고리즘-알고리즘-공부-시리즈의-시작과-각오-프로그래머스-해시-위장-문제-풀이テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol