MySQLのこと。

MySQLのことについてまとめているブログ。他人に見せる用でもなく、自分の勉強備忘録。検索インデックスも外してるので、辿りついた方・・・ようこそ。そんな大した情報ないですよ?!たまにアルゴリズムの練習も

2021-01-01から1年間の記事一覧

Fighting Churn With Dataのシミュレーションデータの生成方法[PostgreSQL]

SaaSサンプルデータ生成のまとめ "Fighting Churn With Data: Science and strategy for keeping your customers"というSaaSデータの分析をまとめたCarl S. Goldさんの書籍のサンプルデータを生成するまでの流れをまとめたもの。下記のYouTubeにある動画でも…

MacでPostgreSQL(version14)のデータ分析環境の構築からサンプルデータを投入するまでのメモ 

過去に似たような記事がたくさん作ってしまっているが、これが現状最新。 インストールから初期設定 まずは環境構築。ここではMacOSにPostgreSQL(v14)をインストールしていく。Dockerとかでもいいんだけども。 ## 過去のファイルを削除 $ brew uninstall pos…

mysql(mariaDB)の定期バックアップ用シェルスクリプトメモ

Raspberryで利用しているMariaDBのバックアップ用のシェルスクリプトのサンプルメモ。 #!/bin/bash # バックアップ先 & バックアップDB/ファイル名を絶対パスで指定 # mysql_bkdirというデスクトップのディレクトリに # yyyymmdd.sqlというファイル名がdump…

リストのお尻に0を移動させる問題

問題 今日はMove all zeroes to end of arrayの問題にチャレンジする。この問題は、ランダムな値をもつリストの要素の順番を並び替える問題で、0以外を前に移動させ、0は後ろに移動させる問題。 Input : [1, 9, 8, 4, 0, 0, 2, 7, 0, 6, 0, 9] Output: [1, 9…

正負の値を含むリストの要素を正負交互に並び替える

問題 今日はRearrange positive and negative numbers in O(n) time and O(1) extra spaceの問題にチャレンジする。 この問題は、正の数と負の数の両方がランダムな順序で含まれていて、正の数と負の数が交互に配置されるように要素を並び替える問題。正の数…

リストの要素をリバースする問題

問題 今日はWrite a program to reverse an array or stringの問題にチャレンジする。この問題は、リストの要素をリバースする問題。 Input : [1, 2, 3] Output: [3, 2, 1] Input : [4, 5, 1, 2] Output: [2, 1, 5, 4] 実装 基本的な方針は、start, endの2つ…

リストの要素を再配置する問題

問題 今日はRearrange an array such that arr[i] = iの問題にチャレンジする。この問題は、0からn–1の範囲の長さnの要素のリストがあり、List[i]=iとなるように配列を再配置する。すべての要素が配列に存在するとは限らないので、要素が存在しない場合、配…

リストを分割し、最初の部分を最後にくっつける

問題 今日はSplit the arrays and add the first part to the endの問題にチャレンジ。これは、指定されたkのインデックスの位置でリストを分割し、それらをスワップして、最初の部分をリストのお尻に持ってくるという問題。 Input: [12, 10, 5, 6, 52, 36] …

ローテションしたリストから指定されたインデックスの要素を検索する

問題 今日はFind element at given index after a number of rotationsにチャレンジする。 この問題はローテションさせる複数の範囲がネストされたリストで渡されるので、その範囲をローテションさせて、指定されたインデックスの要素を検索する問題。下記の…

dequeを使ったリストのローテション

問題 今日はPrint left rotation of array in O(n) time and O(1) spaceの問題に挑戦する。今までチャレンジしてきたローテション問題をdequeを使って解く方法でチャレンジする。 k = 3 Input: [1, 3, 5, 7, 9] output: [7, 9, 1, 3, 5] まずは基本的なロー…

リストをローテーションさせて ハミング距離の最大値を見つけるアルゴリズム

問題 今日はFind a rotation with maximum hamming distanceに挑戦する。この問題は、リストをローテーションさせて ハミング距離の最大値を見つけるという問題。ハミング距離というのは、等しい文字数を持つ二つの文字列の中で、対応する位置にある異なった…

ローテーションされたソート済みリストから最小の要素を見つける

問題 今日はFind the minimum element in a sorted and rotated arrayの問題。ソートとローテーションされたリストから最小の要素を見つける問題。ローテーション回数はわかりません。 input: [5,6,1,2,3,4] output: 1 実装 ポイントは最小の要素は、1個前の…

指定した回数分、リストをローテーションさせる

問題 今回はQuickly find multiple left rotations of an arrayにあるリストの並びを指定した回数 k回ローテーションさせる問題を勉強する。具体的には下記のようなリストがあったときに、kで指定した数値分リストを回転させることが目的。 k = 3 Input : [1…

リストの中の重複を確認する

問題 今回の問題はリストの中の要素を検索し、重複しているものがあれば、そのタイミングでTrueを返すアルゴリズム。重複する要素がなければFalseを返す。 input: [1,2,3,1] output: true 実装 方針としては、ディクショナリーに値を格納していき、要素をル…

ハノイの塔にチャレンジする

問題 今回はハノイの塔にチャレンジする。この問題は再帰を実装できれば解くことができるとのこと。ハノイの塔については、下記の動画を参考にしました。 ハノイの塔は最短で何手かかるか? コーディングインタビュー解説!ハノイの塔を解き明かせ! Tower o…

再帰関数のおさらい

再帰関数とは 2分探索を再帰関数を使った方法で取り組む前に、再帰のおさらいをしておく。再帰関数とは、自分自身を呼び出す関数のことで、下記の条件をもつ関数のこと。 再帰関数の中で自分自身を呼び出す 終了条件を書く 終了条件に向かうように自分自身を…

基本的な検索アルゴリズムの2分探索

問題 基本的な検索アルゴリズムの2分探索問題にチャレンジする。2分探索は、ソート済のリストに対して、検索範囲を狭めながら探索を行っていくアルゴリズム。2分探索は再帰で実装する方法もあるので、それはまた今度。 実装 アルゴリズムとしては、リストの…

基本的な検索アルゴリズムの線形探索

問題 リストの中から見つけたい要素と一致する要素のインデックスを返す問題。線形探索の問題。「ランダムに並んでいるリスト」から探索を行う唯一の方法。 実装1 解説は不要なのかもしれませんが、線形探索を行えばよいので、インデックスをインクリメント…

記号を交互に出力する

問題 奇数のインデックスでは-を、偶数のインデックスでは/を交互に出力するという問題。余剰の練習問題。 実装1 これまでも使っている余剰を使って組み立てる。この実装では、繰り返す回数分、if文の判定が行われるので効率が良くない。 def print_line(n: …

ソートされたリストから回転カウントを見つける

問題 本日はFind the Rotation Count in Rotated Sorted arrayの問題にチャレンジする。昇順ソートされたリストがあり、k回時計回りに回転させた配列が与えられたときの回転数kの値を見つける問題。言葉では分かりづらいけど、言っていることは下記のとおり…

リストの要素とインデックスをかけ合わせて最大値を探す問題

問題 今回はMaximum sum of 'i*arr[i]' among all rotations of a given arrayの問題。与えられたリストをローテーションしながら、リストの要素のインデックスをかけ合わせて、最大値を見つけるという問題。 Input: arr[] = {8, 3, 1, 2} Output: 29 つまり…

リストから与えられた合計のペアを集合を利用してチェックする。

問題 リストとある値が与えられたとき、リストの中に、合計がある値に一致するペアを見つけるというGiven an array 'A' and a number x, check for pair in 'A' with sum as xの問題。下記の例では-3+1=-2となるので、(-3, 1)というペアを返さればOK。 input…

リストから与えられた合計のペアをチェックする

問題 リストとある値が与えられたとき、リストの中に、合計がある値に一致するペアを見つけるというGiven an array 'A' and a number x, check for pair in 'A' with sum as xの問題。下記の例では-3+1=-2となるので、(-3, 1)というペアを返さればOK。 input…

リストのローテーションにおける最大公約数を使ったジャグリングアルゴリズム

問題 Program for array rotationにあるリストのローテーション問題。指定されたdの数分、左にローテーションさせていく問題。このページの最後にある最大公約数を使ったローテーション方法の内容を勉強。 d = 3 input: 1,2,3,4,5,6,7,8,9 ↓ output: 4,5,6,7…

総和を求めるループの繰り返し過程を出力したい。

問題 正の整数のリストが渡されたときに、そのリストの総和を計算し、その計算過程を出力させるというもの。 input: [1,2,3,4,5] output: 1+2+3+4+5=15 実装 まずは総和を計算するコードを書いてみる。 numbers = [1,2,3,4,5] sum = 0 for i in range(len(nu…

リストのローテーションのいろいろ

問題 配列が与えられたら、配列の要素を1つ時計回り、反時計回りに回転させる。反時計に回す場合は、for文、while文、indexErrorを条件に使い、リストのメソッドは使わない。簡単な問題かもしれないが、何事も練習あるのみ・・・。 input: [1,2,3,4,5] ↓ out…

リストのローテーションにおけるブロックスワップアルゴリズム

問題 今回もリストのローテーションを勉強する。問題はgeeksforgeeksのBlock swap algorithm for array rotationにあるローテーション問題。アルゴリズムの中身は下記のような内容を実装できれば良い。 1. A = arr [0..d-1]およびB = arr [d..n-1]を初期化し…

リストのローテーションにおける逆転アルゴリズム

問題 今回はReversal algorithm for array rotationにあるリストの並びをローテーションないしスワップさせて、リストのブロック要素を反転する方法を勉強する。具体的には下記のようなリストがあったときに、dで指定した数値分リストを分割し、その分割した…

リストの並びをローテーションする

問題 今回はProgram for array rotationにあるリストの並びをローテーションする方法を勉強する。具体的には下記のようなリストがあったときに、dで指定した数値分、リストを左にローテーションすることが目的。 d=2 pre: [1, 2, 3, 4, 5, 6, 7] ↓ post:[3, …

turtleであそぶ

turtle turtleであそびます。 turtleで四角形 turtleで四角形を書くには、直線を書いて、曲がってを4回繰り返せば四角形になる。 import turtle turtle.shape('turtle') def square(): for i in range(4): turtle.forward(100) turtle.right(90) square() tu…