【Java】入力された値の足し合わせ(B - Bitter Alchemy)
解いた問題
AtCoderの「B - Bitter Alchemy」
提出した回答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int X = sc.nextInt(); int minimum_m = 0; int sum = 0; //ドーナツ1個ずつ作成時の重さの合計 for (int i = 0; i < N; i++) { int tmp = sc.nextInt(); sum += tmp; if (i == 0) { minimum_m = tmp; continue; } //最小を入れ替え if (tmp < minimum_m) { minimum_m = tmp; } } //この時点でドーナツを1個ずつ、合計N個を、作成している //必要な素が最小のドーナツを可能な限り作る // System.out.println(N + (X - sum) / minimum_m); sc.close(); } }
最小の値を求める方法として、配列にしてCollectionsやstreamの使用を考えたが、for文の中でシンプルに実装できそうだったので使用しなかった。
全ドーナツを1個ずつ作成し、残ったお菓子の素で最も少ない量の素で作成できるドーナツだけを作成する。
競プロの問題文に少し慣れた気がして嬉しかった。
TODO
- 他のA,B問題を解く
- タイミング合う回のコンテストに参加する
おわり。。