📖
プログラミング自主学習 DAY54 CS/多次元配列回転
CS
プログラムの演算過程

https://m.blog.naver.com/sjc02183/221998493348
0. I/O
キーボード、マウスなどで、データーを入力する。
1.HDD/ODD(補助記憶装置)
データを読み取り、RAM(Main Memory)に載せ、この作業をloadingと呼ぶ。
機械でデーターを処理するため、処理速度が遅く、ボトルネック現象が起こりやすい。
現在はボトルネック現象を改善したSSDで、データを電気で処理する。
2. RAM(主記憶装置)
Javaを勉強する際に、勉強する領域。stack,heap,dataなどが存在する。
3. CPU Cache(主記憶装置)
RAMとCPUの間にあるメモリ。RAMとCPUのボトルネック現象を解消するため、存在する。
L3(level 3)はCPUの外部、L2(level 2),L1(level 1)はCPU内部にある。
4. CPU Register(主記憶装置)
CPU内部にある最上位メモリ。処理速度が一番早い。
Registerにあるデーターが、CPU内部のALU(Arithmetic and logical Unit), CU(Control Unit)に入る。病院の待機列みたいな感じだ。
二次元配列回転
90度回転
Rotate90
int [][] score = {
{80,80,80},
{90,90,90},
{75,75,75},
{95,95,95},
{60,60,60}
};
int row = score.length; //5
int column = score[0].length; //3
int[][] rotate = new int[column][row];
for(int i=0; i<rotate.length; i++) {
for(int j=0;j<rotate[i].length; j++){
rotate[i][j]= score[row-1-j][i];
}
}
60 95 75 90 80
60 95 75 90 80
60 95 75 90 80
180度回転
Rotate180
int [][] score = {
{80,80,80},
{90,90,90},
{75,75,75},
{95,95,95},
{60,60,60}
};
int row = score.length; //5
int column = score[0].length; //3
int[][] rotate = new int[row][column];
for(int i=0; i<rotate2.length; i++) {
for(int j=0;j<rotate2[i].length; j++){
rotate2[i][j]= score[row-1-i][column-j];
}
}
{60, 60, 60}
{95, 95, 95}
{75, 75, 75}
{90, 90, 90}
{80, 80, 80}
90度回転
Rotate270
int [][] score = {
{80,80,80},
{90,90,90},
{75,75,75},
{95,95,95},
{60,60,60}
};
int row = score.length; //5
int column = score[0].length; //3
int[][] rotate3 = new int[column][row];
for(int i=0; i<rotate3.length; i++) {
for(int j=0;j<rotate3[i].length; j++){
rotate3[i][j]= score[row-1-j][i];
}
}
60 60 60 60 60
95 95 95 95 95
75 75 75 75 75
Discussion