2
1
paiza×Qiita記事投稿キャンペーン「プログラミング問題をやってみて書いたコードを投稿しよう!」

Paiza×Qiitaキャンペーン Javaで解説してみた【C みかんの仕分け 編】

Last updated at Posted at 2024-08-21

問題へのリンク

解答コード

詳細

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);

		final int N = scanner.nextInt();
		final int M = scanner.nextInt();

		StringBuilder sb = new StringBuilder();

		for (int i = 0; i < M; i++) {
			final int W = scanner.nextInt();

			int quotinent = W / N;
			int remainder = W % N;

			if (quotinent == 0 || remainder * 2 >= N) {
				quotinent++;
			}

			sb.append(quotinent * N).append("\n");
		}

		System.out.println(sb);
		scanner.close();
	}
}

解説

詳細

Wを一度Nで割った商によって箱分け、余りで前後の箱の細かな振り分けをするといいでしょう。

ただ、間違いやすいポイントが多い問題です。
・0のBOXが無い ⇒ 商=0の時は強制切り上げ
・N = 偶数の時 : 大きな箱と小さな箱、等距離なら大きい箱 ⇒ >= と >の間違い
・N = 奇数の時 : Nを2で割ると端数切捨ててしまう ⇒ Nを割るのではなく余りを倍にする

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1