반응형
SMALL
문제 정보
문제명 - 숫자놀이
난이도 - 실버 IV
문제 번호 - 1755번
문제 링크
문제
79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 먼저 온다.
문제는 정수 M, N(1 ≤ M ≤ N ≤ 99)이 주어지면 M 이상 N 이하의 정수를 숫자 하나씩 읽었을 때를 기준으로 사전순으로 정렬하여 출력하는 것이다.
입력
첫째 줄에 M과 N이 주어진다.
출력
M 이상 N 이하의 정수를 문제 조건에 맞게 정렬하여 한 줄에 10개씩 출력한다.
예제 입력/출력
예제 입력 예제 출력 8 28 8 9 18 15 14 19 11 17 16 13
12 10 28 25 24 21 27 26 23 22
20
알고리즘 분류
● 수학
● 문자열
● 정렬
소스코드
package Lv2_Silver;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
/**
* @author HanHoon
* @category 수학, 문자열, 정렬
* https://www.acmicpc.net/problem/1755
*/
public class BOJ_S4_1755_숫자놀이 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int M = Integer.parseInt(st.nextToken());
int N = Integer.parseInt(st.nextToken());
String[] number = { "Zero", "One", "Two", "Three", "Four", "Five",
"Six", "Seven", "Eight", "Nine" };
ArrayList<String> list = new ArrayList<>();
for (int num = M; num <= N; num++) {
String string = "";
if(num/10 != 0)
string = number[num/10] + " ";
string += number[num%10];
list.add(string);
}
Collections.sort(list);
for (int i = 0; i < list.size(); i++) {
String result = list.get(i).replace(" ", "");
for (int index = 0; index < number.length; index++)
result = result.replace(number[index], index + "");
System.out.print(result + " ");
if(i%10 == 9)
System.out.println();
}
}
}
BaekJoon List
기회는 준비된 자에게 찾아온다.
반응형
LIST
'BaekJoon > Silver' 카테고리의 다른 글
[BOJ/JAVA] 백준 1747 : 소수&팰린드롬 (자바) (0) | 2022.05.04 |
---|---|
[BOJ/JAVA] 백준 1312 : 소수(자바) (0) | 2022.04.29 |
[BOJ/JAVA] 백준 1316 : 그룹 단어 체커 (자바) (0) | 2022.04.22 |
[BOJ/JAVA] 백준 9655 : 돌 게임 (자바) (0) | 2022.04.16 |
[BOJ/JAVA] 백준 2941 : 크로아티아 알파벳 (자바) (0) | 2022.04.16 |
댓글