前提・実現したいこと
標準入力にて以下のように
5 1
3
1 0
5 1
5 3
と言った形で入力した際に
はじめに入力された1行目の2つの数字5 1を軸に
それ以降の
1 0
5 1
5 2
と比較しもし1行目の左の5より小さい場合は負け 大きい場合はは勝ちと表示しさらに、5行目のように1つ目の数字がどちらも同じ場合2つ目の数字で同じよう比較して小さい場合負け 大きい場合勝ちと表示するプログラムを作成しております。
条件
1つ目と2つ目をどちらも同じ数値を入力することはできません。(例 1 1など)
1つ目と2つ目の数字が比較対象である1行目と全く同じ場合はエラーと表示します。(上の例ですと 5 1)
この場合ですと
1 0
負け
5 1
エラー
5 2
勝ち
と結果を返したいです。
因みに2行目の3は 比較するそれよりも下の行数です。今回が3個比較対象があるため3と入力されています。これを活用するべきなのでしょうが現状分からずremoveで削除しております。
発生している問題・エラーメッセージ
考え方がそもそも間違っているようですが、ほかに思いつかないため強行して見ましたが、やはりうまく行きませんでした。ただ他のやり方が思い浮かばないためこの方法で行えるように試行錯誤している状況です。私の場合はListを使用しております。
該当のソースコード
未完成となりますが、
lang
1 List<String> list = new ArrayList<>(); 2 try(Scanner sc = new Scanner(System.in)) { 3 while(sc.hasNext()) { 4 list.add(sc.next()); 5 } 6 } 7 8 int a = Integer.parseInt(list.get(0)); 9 System.out.println(a); 10 11 int b = Integer.parseInt(list.get(1)); 12 System.out.println(b); 13 14 list.remove(0); 15 list.remove(0); 16 17 //数値 入力個数 18 int c = Integer.parseInt(list.get(2)); 19 20 //比べるのに不要部分 21 list.remove(0); 22 23 24 ArrayList<Integer> array = new ArrayList<Integer>(); 25 26 for(int i = 0; i < list.size(); i++) { 27 Integer value = Integer.parseInt(list.get(i)); 28 list.remove(i); 29 array.add(value); 30 }
となっており現状抱えている問題としては、比較していく3行目以降の数値をどのように1行目の数値と比較するかという部分です。
試したこと
現状では まず比較対象となる1行目を 1つ目の数値はa 2つ目の数値はbとして変数に格納し削除しております。
そして比較個数を一応cに格納し削除しております(現状使えておりません)
その後新しくIntegerリストを作りそこに比較していく3行目以降を格納しているのですが、これで結局どうやって比較を行い勝ち負け判定をするかという部分で完全にお手上げになってしまいました。
補足情報(FW/ツールのバージョンなど)
正直はじめから間違えている可能性が高いのでコードがガラリと変わってしまっても大丈夫なのでご教示いただけると助かります。
回答3件
あなたの回答
tips
プレビュー