접근
1. 입력받은 문자열에서 0과 1중 연속된 부분이 적은 쪽이 답이다.
풀이
1. pre 변수에 이전 값 저장
2. pre와 현재 문자가 다를 경우 현재 문자 변수(zero 또는 one) 증가
3. zero, one 중 최솟값 출력
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
char[] charArray = s.toCharArray();
int zero = 0, one = 0;
char pre;
if(charArray[0] == '1') {
one++;
pre = '1';
} else {
zero++;
pre = '0';
}
for (int i = 1; i < charArray.length; i++) {
if(charArray[i] != pre){
if(charArray[i] == '1') one++;
else zero++;
pre = charArray[i];
}
}
System.out.println(Math.min(zero, one));
}
'Algorithm' 카테고리의 다른 글
BOJ 7562 나이트의 이동 (0) | 2020.06.23 |
---|---|
BOJ 10816번 숫자 카드 2 (0) | 2020.06.23 |
BOJ 9237번 이장님 초대 (0) | 2020.06.23 |
BOJ 1654번 랜선 자르기 (0) | 2020.06.23 |
BOJ 15649번 N과 M (1) (0) | 2020.06.23 |