はじめまして。
私は現在最強最速アルゴリズマー養成講座という競技プログラミング界ではかなり有名な書籍で勉強をしているjava初心者のものです。
この書籍にあるソースコードに疑問があったため質問させていただきました。
実はこの書籍のソースコードに、javaでは必須(だと思っている)mainメソッドがないのです。
実際にソースコードをsublime textに写して実行してみても、mainメソッドが書かれていないため実行できませんとのエラーが出ます。
コンパイルはできているのでソースコード自体に文法的な誤りはなさそうです。
当方java初学者のためmainメソッドは必須だと思っているのですが、mainメソッドがなくてもjavaは普通に動くのでしょうか。
また、今回の場合はどのように修正すれば良いでしょうか。
さらに、もう一つ疑問があります。
競技プログラミングは入力されたデータに対して求められている回答を出力するものだと思うのですが、その特性上必ず「キーボードから入力されたデータを受け取る」という過程が必要だと思います。しかしこの書籍のソースコードでは一切その行程に触れておらず、全くもって意味がわかりません。
なお、今回の問題をとても簡単にまとめると「N本あるボトルにジュースを注いでいき、全てなくなったところで他のボトルにジュースを再分配。i番目のボトルにジュースはどのくらい入っているか」という問題です。
どなたか、javaに詳しい方、競技プログラミングに詳しい方、回答いただけと幸いです。
よろしくお願いします。
java
1public class KiwiJuice{ 2 3public int[] thePouring(int[] capacities, int[] bottles, int[] fromId,int[] toId){ 4 5 for(int i=0; i<fromId.length; i++){ 6 int f = fromId[i]; 7 int t = toId[i]; 8 int space = capacities[t] - bottles[t]; 9 10 if(space >= bottles[f]){ 11 12 int vol = bottles[f]; 13 bottles[t] += vol; 14 bottles[f] = 0; 15 }else{ 16 int vol = space; 17 bottles[t] += vol; 18 bottles[f] -= vol; 19 } 20 } 21 return bottles; 22 } 23} 24 25 26
回答3件
あなたの回答
tips
プレビュー