그리디 알고리즘
Q
A
bisect 라이브러리는 정렬된 배열에서만 사용해야 한다는 것은 알게 되었다. 나누기 2를 하고 ceil을 이용한다는 유연한 방식을 나도 계속 생각해보자!
처음 코드
from bisect import bisect_left, bisect_right
from collections import Counter
a = input()
array = [0] * len(a)
for i in range(len(a)):
array[i] = a[i]
count = 0
result = Counter(array)
if int(result['0']) > int(result['1']):
for i in range(len(array)):
if '0' not in array[bisect_left(array, '1') : bisect_right(array, '1')]:
count = 1
elif array[i] == '1' and array[i+1] == '0':
count += 1
else:
for i in range(len(array)):
if '1' not in array[bisect_left(array, '0') : bisect_right(array, '0')]:
count = 1
elif array[i] == '0' and array[i+1] == '1':
count += 1
print(count)
맞춘 코드
import math
a = input()
count = 0
for i in range(len(a)-1):
if a[i] != a[i+1]:
count += 1
print(math.ceil(count/2))