結果
| 問題 |
No.39 桁の数字を入れ替え
|
| コンテスト | |
| ユーザー |
SagToki
|
| 提出日時 | 2018-06-01 13:35:07 |
| 言語 | Java (openjdk 23) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,446 bytes |
| コンパイル時間 | 3,338 ms |
| コンパイル使用メモリ | 78,248 KB |
| 実行使用メモリ | 54,436 KB |
| 最終ジャッジ日時 | 2024-06-30 08:50:10 |
| 合計ジャッジ時間 | 6,637 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 11 WA * 8 |
ソースコード
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class ReplacingNumbers {
public static void main(String[] args){
char[] Disassembly = Processing(Input());
String Result = String.valueOf(Disassembly);
System.out.println(Result);
}
//数値を入力し条件を判定して1文字ずつ配列に格納して返却するメソッド
public static char[] Input(){
Scanner scanner = new Scanner(System.in);
char[] Disassembly = null;
try{
//数値の入力
String N = scanner.nextLine();
//数列が1~9で構成されているかチェック
Pattern pattern = Pattern.compile(".*[^1-9].*");
Matcher matcher = pattern.matcher(N);
if(matcher.find()){
System.out.println("1~9の数字のみで入力してください");
System.exit(0);
}
//数列の長さが2以上9以下かチェック
if(N.length() < 2 || N.length() > 9){
System.out.println("2文字以上9文字以下で入力してください");
System.exit(0);
}
//String型の数列をchar配列で1文字ずつ格納する
Disassembly = N.toCharArray();
}catch(Exception E){
System.out.println("想定外のエラーです");
System.exit(0);
}
return Disassembly;
}
public static char[] Processing(char[] Disassembly){
//何番目に最も大きい数があるかを記憶する変数を定義
int Count = 0;
//左から順番に固定してその値より大きな値が右側にあるか調べるループ
for(int i = 0 ; i < Disassembly.length ; i++){
for(int j = i ; j <Disassembly.length ; j++){
//i番目の数以上の数字がj番目にあった場合
if(!(Disassembly[Count] >= Disassembly[j])){
Count = j;
}
}
//条件分岐がされて変数が初期値から変動していた場合
if(Count != 0){
char Result = Disassembly[i];
Disassembly[i] = Disassembly[Count];
Disassembly[Count] = Result;
break;
}
}
return Disassembly;
}
}
SagToki