[伯俊]BOJ 1755デジタルゲームJAVA
14999 ワード
BOJ 1755デジタルゲーム
79を英語で読むが、数字単位で1つずつ読むと「7,9」になる.80も同様に「8 zero」と読みます.79は80未満ですが、英語で1つの数字を読むと、「8 zero」は「7,9」より先に着きます.
問題は、1つの整数M,N(1≦M,N≦99)が与えられると、1つの数字M以上N以下の整数を読み取ることを基準としてアルファベット順に並べ替えて出力することである.
第1行はMとNを与える.
M以上N以下の整数を問題条件で並べ替え、1行10個ずつ出力します.
クラスが形成され、javaのインタフェースの1つである は、
質問する
79を英語で読むが、数字単位で1つずつ読むと「7,9」になる.80も同様に「8 zero」と読みます.79は80未満ですが、英語で1つの数字を読むと、「8 zero」は「7,9」より先に着きます.
問題は、1つの整数M,N(1≦M,N≦99)が与えられると、1つの数字M以上N以下の整数を読み取ることを基準としてアルファベット順に並べ替えて出力することである.
入力
第1行はMとNを与える.
しゅつりょく
M以上N以下の整数を問題条件で並べ替え、1行10個ずつ出力します.
サンプルI/O
ソースコード
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
private static List<Info> list;
private static String[] numToStr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
list = new ArrayList<>(m - n + 1);
for (int i = n; i <= m; i++) {
String str = String.valueOf(i);
StringBuilder sb = new StringBuilder();
for (int j = 0; j < str.length(); j++) {
sb.append(numToStr[str.charAt(j) - '0']);
if (str.length() > 1) { //두 자릿수의 수일 경우
sb.append(" ");
}
}
list.add(new Info(sb.toString(), i));
}
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i).num + " ");
if ((i + 1) % 10 == 0) {
System.out.println();
}
}
}
private static class Info implements Comparable<Info> {
String word;
int num;
public Info(String word, int num) {
this.word = word;
this.num = num;
}
@Override
public int compareTo(Info o) {
return this.word.compareTo(o.word);
}
}
}
Comment
Comparable
によって정렬
が実現される.Collections.sort
点、誇張された方法(compareTo
)に従って並べ替えられる.Reference
この問題について([伯俊]BOJ 1755デジタルゲームJAVA), 我々は、より多くの情報をここで見つけました https://velog.io/@jinmin2216/백준-BOJ1755-숫자놀이-JAVAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol