문제
접근 방식
십진수 최댓값을 구하기 위해서는 문자열의 처음부터 K를 찾을 때 까지 M을 sub에 넣어두고 K를 찾으면 “5” 뒤에 sub의 길이만큼 “0”을 붙인다. 만약 반복문을 모두 돌았을 때 sub가 남는다면 sub의 길이만큼 “1”을 뒤에 붙인다
십진수 최솟값을 구하기 위해서는 문자열의 처음부터 K를 찾을 때 까지 M을 sub에 넣어두고 K를 찾으면 “1” 뒤에 sub의 길이 -1 만큼 “0”을 붙이고 “5”를 붙인다. 만약 반복문을 모두 돌았을 때 sub가 남는다면 “1” 뒤에 “0”을 sub의 길이-1 만큼 붙인다
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main_21314 {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String max = "";
String min = "";
String subMax = "";
String subMin = "";
for(int i=0;i<str.length();i++) {
if(str.charAt(i) == 'M') {
subMin+="M";
subMax+="M";
}else if(str.charAt(i) == 'K') {
if(subMin.length() > 0) {
min+="1";
for(int j=0;j<subMin.length()-1;j++) {
min+="0";
}
subMin="";
}
min+="5";
max+="5";
for(int j=0;j<subMax.length();j++) {
max+="0";
}
subMax = "";
}
}
if(subMax!="") {
for(int i=0;i<subMax.length();i++) {
max+="1";
}
}
if(subMin!="") {
min+="1";
for(int i=0;i<subMin.length()-1;i++) {
min+="0";
}
}
System.out.println(max);
System.out.println(min);
}
}