[알고리즘] Java / 백준 / 민겸 수 / 21314

정현명·2022년 3월 25일
0

baekjoon

목록 보기
106/180
post-thumbnail

[알고리즘] Java / 백준 / 민겸 수 / 21314

문제


문제 링크



접근 방식


십진수 최댓값을 구하기 위해서는 문자열의 처음부터 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);
		
	}

}
profile
꾸준함, 책임감

0개의 댓글