110001001010110101 이렇게 예제가 있을 때
숫자를 연속되게만 뒤집을 수 있다.
최소로 뒤집을 수 있는 숫자를 반환하라
0을 뒤집을 때, 1을 뒤집을 때를 세주면 된다. 이 때, 뒤집는다는 것은
s[i] != s[i+1]
일 때 뒤집으므로
if s[i]==1 and s[i]!=s[i+1]
...
if s[i] == 0 and s[i]!=s[i+1]
...
0과 1일 때를 나누어서 세주면 된다.
단 이때, 마지막 항일때는 s[i+1]
을 하게 되면 OutOfIndex 오류가 나므로,
i==len(s)-1 or s[i]!=s[i+1]
조건을 추가해준다
🔥 or 조건은 둘 중 하나만 맞아도 들어간다. 앞에 놈이 먼저 맞으면, 뒤에 놈은 걸리지 않는다.
s= input()
zero_value = 0
one_value = 0
for i in range(len(s)):
if s[i]=='1' and (i==len(s)-1 or s[i]!=s[i+1]):
zero_value+=1
for i in range(len(s)):
if s[i]=='0' and (i==len(s)-1 or s[i]!=s[i+1]):
one_value+=1
print(min(one_value,zero_value))