見出し画像

【paizaラーニング 「戦セット」競技7奇数大好き山田さん (paizaランク C 相当)※自分のための備忘録】


**********************************************************************************

paizaラーニングの、レベルアップ問題集はユーザー同士で回答を教えあったり、コードの公開は自由です。

【paizaラーニング 「戦セット」※自分のための備忘録】では、私の学習記録です。

※初学者なので間違いがあるかもしれません。そのときはご指摘をいただければ幸いです。


**********************************************************************************

【競技7】奇数大好き山田さん (paizaランク C 相当)
 03 下記の問題をプログラミングしてみよう!
この問題は、弊社営業社員が競技プログラミングに挑戦したものです。
https://youtu.be/Vf2RFjXCmZY

あなたは奇数が大好きな山田さんと数字の仕分けをすることになりました。
仕分けをする数字が与えられますので、奇数であるものを小さい順に出力してください。

▼ 下記解答欄にコードを記入してみよう

入力される値
入力は以下のフォーマットで与えられます。

n (数字の総数)
a_1
a_2
a_3
...
a_i
...
a_n


1行目で正の整数nが入力され、続くn行の各行で整数が1つずつ入力されます。


入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。 標準入力からの値取得方法はこちらをご確認ください
期待する出力
入力された正の整数a_iから奇数であるものを改行区切りで出力してください。
出力する順番は、小さい数字から出力します。

最後は改行し、余計な文字、空行を含んではいけません。

条件
すべてのテストケースにおいて、以下の条件をみたします。

・1≦n≦1,000
・1<=i<=nについて、1<=a_i<=10000

入力例1
5
6167
3819
343
554
432

出力例1
343
3819
6167

入力例2
3
4
6
1

出力例2
1

--------------------------------------------------------------------------------------

【私の作成したコード】

import java.util.*;//解説なし版


public class Main {
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);
ArrayList<Integer>array =new ArrayList<Integer>();
int line = sc.nextInt();

for(int i=0;i<line;i++){

int num = sc.nextInt();
if(num%2!=0){

array.add(num);
}
}
Collections.sort(array);
for (int box : array) {
System.out.println(box);
}

}

}

-------------------------------------------------------------------------------------

【私の作成したコード】//解説あり版 10/18日曜日実施

import java.util.*;


public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!

Scanner sc = new Scanner(System.in);

//コンソール入力される数字が何個かわからない(゜_゜)
ので、アレーリスト<インテジャー>作成↓

ArrayList<Integer>array =new ArrayList<Integer>();

//1行目の数字(何回数字が入力されるか?チェック)
int line = sc.nextInt();

//for文で入力される数字を読み取り、アレーリストに追加
for(int i=0;i<line;i++){

int num = sc.nextInt();
if(num%2!=0){

//2で割ることが出来ないがtrue(つまり奇数ならtrueです!)

array.add(num);
}
}

//コレクション.ソートメソッドで昇順(※123456789)

に並べ替えする

Collections.sort(array); 

//拡張for文で値を出力
for (int box : array) {
System.out.println(box);
}

}

}
--------------------------------------------------------------------------------------

【お手本のコード】

無し

--------------------------------------------------------------------------------------

ポイント

・2で割れない数⇒奇数でtrue判定する

・ArrayListは、昇順(123456789)に並べ替えするときは、Collections.sort(コレクション・ソートメソッド)を使う(・∀・)ウン!!

--------------------------------------------------------------------------------------

【Java】参照URL

※この問題を解くのには使用しないが関連ある【配列の並べ替え】について

--------------------------------------------------------------------------------------


この記事が参加している募集

習慣にしていること

この記事が気に入ったらサポートをしてみませんか?