📖
プログラミング自主学習 DAY54 CS/多次元配列回転
CS
プログラムの演算過程
https://m.blog.naver.com/sjc02183/221998493348
I/O
0. キーボード、マウスなどで、データーを入力する。
HDD/ODD(補助記憶装置)
1.データを読み取り、RAM(Main Memory)
に載せ、この作業をloading
と呼ぶ。
機械でデーターを処理するため、処理速度が遅く、ボトルネック現象が起こりやすい。
現在はボトルネック現象を改善したSSDで、データを電気で処理する。
RAM(主記憶装置)
2. Javaを勉強する際に、勉強する領域。stack
,heap
,data
などが存在する。
CPU
Cache(主記憶装置)
3. RAMとCPUの間にあるメモリ。RAMとCPUのボトルネック現象を解消するため、存在する。
L3(level 3)はCPUの外部、L2(level 2),L1(level 1)はCPU内部にある。
CPU
Register(主記憶装置)
4. 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