2次元配列の初期化や、メソッドに渡すときの引数宣言の書き方サンプルです。
【 2次元配列の初期化、メソッドに渡すサンプル 】class ReservedSeat { static int notReservedCnt( int[][] seats ) { int cnt = 0; for( int i = 0; i < seats.length; i++ ) { for( int j = 0; j < seats[i].length; j++ ) { if( seats[i][j] == 0 ) cnt++; } } return cnt; } public static void main( String[] args ) { int[][] seats = { { 1,0,0 }, { 0,0,0,1 }, { 1,0,0,0 }, { 1,1,0,1 } //先頭は3席 , { 1,0,1,1 }, { 1,1,1,1 }, { 1,1,1,1 }, { 0,1,1,1 } , { 0,1,1,1 }, { 1,1,1,1 }, { 1,1,0,1 }, { 1,1,0,0 } , { 1,1,1,1 }, { 1,1,1,1 }, { 1,1,1,1 }, { 1,0,0,0,1 } }; //末尾は5席 int cnt = notReservedCnt( seats ); System.out.println( "空き座席数 = " + cnt ); } }
(今回のクイズです)
上のプログラムで、バスを2台にします。そして3次元配列を使うものとします。
初期化の仕方やメソッドの引数宣言、処理をどのように変えればよいか考えてみてください。
(答えは、次回の Java の Tips で ・・・)
[ 関連記事 ] 2次元配列の使用例
(1) int x1 = (int)( d < 0.0 ? d : d+0.9 ); (2) int x2 = (int)( d < 0.0 ? d-0.9 : d );切り上げは、元の値に 0.9 を足し int型にキャストして小数点以下を切り捨てるので、ひとつ大きな整数となります。 切り捨ては、そのままキャストします。 負の値をキャストすると 0 に近い方に切り捨てられるので、切り上げでは 0.9 を足さず、切り捨てでは逆に 0.9 引いてキャストしています。