B - さかさま辞書 / AtCoderRegularContest#003

arc003.contest.atcoder.jp

import java.io.*;
import java.util.*;

public class Main   {
    public static int N;
    public static String[] s = new String[100];

    private void Input()    {
        Scanner sc = new Scanner(System.in);
        N = Integer.parseInt( sc.next() );

        for (int i=0; i<N; ++i) {
            StringBuilder sb = new StringBuilder( sc.next() );
            sb.reverse();
            s[i] = sb.toString();
        }
    }

    private void Solve() {
        for (int i=0; i<N-1; ++i)
            for (int j=i+1; j<N; ++j)
                if (s[i].compareTo(s[j]) > 0)   {
                    String tmp = s[i];
                    s[i] = s[j];
                    s[j] = tmp;
                }
    }

    private void Output()   {
        PrintWriter pw = new PrintWriter(System.out);

        for (int i=0; i<N; ++i) {
            StringBuilder sb = new StringBuilder(s[i]);
            sb.reverse();
            pw.println(sb);
        }
        pw.flush();
    }

    public static void main(String[] args)  {
        Main instance = new Main();

        instance.Input();
        instance.Solve();
        instance.Output();
    }
}

文字列を逆順に並べ比較し、出力する際もまた逆順に並べ出力。
〜了〜