January 15, 2022
백준 문제 링크 : https://www.acmicpc.net/problem/21314
민겸수라는 문제에 조건을 잘 파악해야한다. 문제에서 주어진 사진 M일떄 1, K일떄 5란 조건을 잘 파악해야한다.
큰값을 구할 때와 작은 값을 구할 때 K의 역할이 다르다.
M만 있을경우 (ex: M 이 5개)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class B_21314 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int i=0;
StringBuilder maxVal = new StringBuilder("");
StringBuilder minVal = new StringBuilder("");
int mCnt = 0;
while(str.length() > i){
if(str.charAt(i) == 'M'){
mCnt++;
}
else if(str.charAt(i)=='K'){
if(mCnt != 0){
maxVal.append("5");
minVal.append("1");
for(int j=1; j<mCnt; j++){
maxVal.append("0");
minVal.append("0");
}
maxVal.append("0");
minVal.append("5");
mCnt = 0;
}
else{
maxVal.append("5");
minVal.append("5");
}
}
i++;
}
if(mCnt != 0){
maxVal.append("1");
minVal.append("1");
for(int j=1; j<mCnt; j++){
maxVal.append("1");
minVal.append("0");
}
}
System.out.println(maxVal);
System.out.println(minVal);
}
}
M이 연속일 때 11111로 해주어야한다는것… 흠 개인적으로 약간 지엽적이긴 하지만 그럼에도 불구하고 풀었어야하는 부분이였다. 이런 부분까지 생각할 수 있도록 잘 복습해야겠다.