寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

paizaラーニング: 整数の並び替え(C, Python, Java)

整数を小さい順に並び替える問題と、その提出コードの解答例です。
paizaラーニングのレベルアップ問題集「スキルチェック見本問題」からの出典です。
paiza.jp
・問題
 1行目で正の整数nが入力され、続くn行の各行で整数が1つずつ入力されます。n個の整数を小さい順に改行区切りで出力してください。

・入力される値:入力は以下のフォーマットで与えられます。
   n (数字の総数)
   a_1
   a_2
   a_3
   ...
   a_i
   ...
   a_n
 入力値最終行の末尾に改行が1つ入ります。
 文字列は標準入力から渡されます。

・期待する出力
 入力された正の整数a_iを小さい順に改行区切りで出力してください。
 最後は改行し、余計な文字、空行を含んではいけません。

・条件
 すべてのテストケースにおいて、以下の条件をみたします。
   1 ≦ n ≦ 100
   1 ≦ i ≦ nについて、1 ≦ a_i ≦ 1000

僕が作成、提出したコードは、以下のとおりです。

/*
C言語による整数の並び替え
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
#include <stdio.h>
int main(void) {
    int n,i,j,tmp;
    int a[100];
    scanf("%d",&n);
    for (i=0; i<n; ++i)
        scanf("%d", &a[i]);
    for (i=0; i<n; ++i) {
    for (j=i+1; j<n; ++j) {
      if (a[i] > a[j]) {
        tmp =  a[i];
        a[i] = a[j];
        a[j] = tmp;
      }
    }
  }
  for (i=0; i<n; ++i)
    printf("%d\n", a[i]);
    return 0;
}

Pythonのバージョンは、3.x に対応します。

#Pythonによる数の並び替え
#https://paiza.jp/works/mondai
#提出コードの解答例
#https://neguse-atama.hatenablog.com
n = int(input())

n_list = []

for i in range(n):
    a = int(input())
    n_list.append(a)

sorted_l = sorted(n_list)

for i in sorted_l:
    print(i)
/*
Javaによる整数の並び替え
https://paiza.jp/works/mondai
提出コードの解答例
https://neguse-atama.hatenablog.com
*/
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Collections;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        ArrayList list = new ArrayList();
        for(int i = 0; i < num; i++){
            int n = sc.nextInt();
            list.add(n);
        }
        Collections.sort(list);
        for(int i = 0; i < num; i++){
            System.out.println(list.get(i));
        }
    }
}

paizaラーニングのレベルアップ問題集については、ユーザー同士で解答を教え合ったり、コードを公開したりするのは自由としています。
また授業や研修、教材などにも利用できるそうです。