結果
問題 |
No.5 数字のブロック
|
ユーザー |
|
提出日時 | 2024-09-25 16:02:26 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 296 ms / 5,000 ms |
コード長 | 1,481 bytes |
コンパイル時間 | 5,750 ms |
コンパイル使用メモリ | 75,412 KB |
実行使用メモリ | 58,808 KB |
最終ジャッジ日時 | 2024-09-25 16:02:41 |
合計ジャッジ時間 | 11,152 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 34 |
ソースコード
package block_of_Number; import java.util.Arrays; import java.util.Scanner; public class BlockOfNumber02 { public static void main(String[] args) { //入力 Scanner sc = new Scanner(System.in); int boxWidth = sc.nextInt(); //入れ物となる箱の幅 int blockNum = sc.nextInt(); //ブロックの数 int[] arrayBlocksWidth = new int[blockNum]; //各ブロックの幅を格納した配列 for(int i = 0; i < blockNum; i++) { arrayBlocksWidth[i] = sc.nextInt(); } //処理、出力 System.out.println(countBlock(boxWidth, arrayBlocksWidth)); sc.close(); } /** * 箱に何個のブロックを入れることができたのかカウントアップ * @param boxWidth - 箱の幅 * @param arrayBlocksWidth - それぞれのブロックの幅の数値が入った配列 * @return - 箱に入るブロックの最大個数 */ private static int countBlock(int boxWidth, int[] arrayBlocksWidth) { int blockCnt = 0; //何個ブロックが入ったかカウント int[] sortedBlock = arrayBlocksWidth.clone(); Arrays.sort(sortedBlock); //幅の小さいブロックから順に並び替え int space = boxWidth; //箱の空きスペース //小さいブロックから分に箱に詰めていく for(int i = 0; i < sortedBlock.length; i++) { //スペースがあればカウントアップ if(space >= sortedBlock[i]) { space -= sortedBlock[i]; blockCnt++; } else { break; } } return blockCnt; } }