문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
앨리스는 이진 문자열을 가지고 있다. 그녀는 이진 문자열이 만약 부분 문자열 "010"을 포함하고 있지 않다면 아름답다고 생각한다.
한 번의 단계에서 앨리스는 0을 1로 변경하거나 그 반대로 변경할 수 있다. 앨리스가 문자열을 아름다운 것으로 보기 위해 필요한 최소 단계 수를 계산하고 출력해라.
b = 010
그녀는 어떤 요소든 하나만 변경하면 아름다운 문자열을 만들 수 있다.
beautifulBinaryString 함수를 완성해라.
beautifulBinaryString 함수는 아래와 같은 매개변수를 가지고 있다.
문자열을 잘라내서 잘려진 횟수를 구하는 방법으로 문제를 해결했다. 문제의 의도와 조금 다를 수 있다.
먼저 문자를 자를 횟수를 할당할 count를 선언하고 0을 할당한다.
int count = 0;
그리고 while문을 사용해서 매개변수 b에 010이 포함이 안될때까지 반복한다. while문 안에 beginIndex를 선언하고 010이 시작하는 인덱스를 할당한다. substring을 이용해서 010포함한 인덱스까지 잘라준고 count를 증가시킨다.
while(b.indexOf("010") != -1){
int beginIndex = b.indexOf("010");
b = b.substring(beginIndex + 3);
count++;
}
마지막으로 count를 반환한다.
return count;
public static int beautifulBinaryString(String b) {
int count = 0;
while(b.indexOf("010") != -1){
int beginIndex = b.indexOf("010");
b = b.substring(beginIndex + 3);
count++;
}
return count;
}