結果

問題 No.5 数字のブロック
ユーザー Takuya ItoTakuya Ito
提出日時 2022-12-13 17:27:39
言語 TypeScript
(5.4.3)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 991 bytes
コンパイル時間 5,374 ms
コンパイル使用メモリ 144,480 KB
最終ジャッジ日時 2024-04-27 04:23:05
合計ジャッジ時間 5,871 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.ts(28,6): error TS2580: Cannot find name 'require'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`.

ソースコード

diff #

function Main(input: string): void {
  const inputArr: string[] = input.split('\n');

  const boxWidth: number = parseInt(inputArr[0]);
  const blocksWidth: number[] = inputArr[2].split(' ')
    .map(str => parseInt(str))
    .sort((a, b) => a - b);

  let sum = 0;
  // 何個入るか をindexを使って表現したいが、ループ途中でbreakもしたいのでArray.forEach()が使えない
  // そのため、 for of + Object.entries()を採用
  for (const [index, blockWidth] of Object.entries(blocksWidth)) {
    // (途中のブロックや最後のブロックが)箱に収まらなかったとき or 最後のブロックが収まったとき
    // 箱に収まるブロック数を出力
    sum += blockWidth;
    if (sum > boxWidth) {
      console.log(parseInt(index));
      break;
    }

    if (parseInt(index) + 1 == blocksWidth.length) {
      console.log(blocksWidth.length);
      break;
    }
  }
}

Main(require("fs").readFileSync("/dev/stdin", "utf8"));
0