ABC124 C - Coloring Colorfully에서 배운





간단히 "0"으로 시작하면 "1"로 시작하면,
교대로 되어 있지 않은 개소를 카운트해 비교한다. 최소를 output 하면 좋을 것입니다.

ColoringColorfully.py
S = input()

cntst0 = 0 #"0"start の場合
for i in range(len(S)): # 計算量 O(N)
    if i%2 == 0 and S[i] != "0":
        cntst0 += 1
    elif i%2 != 0 and S[i] != "1":
        cntst0 += 1

cntst1 = 0 #"1"start の場合
for j in range(len(S)):# 計算量 O(N)
    if j%2 == 0 and S[j] != "1":
        cntst1 += 1
    elif j%2 != 0 and S[j] != "0":
        cntst1 += 1

print(min(cntst0,cntst1))#計算量 O(2)

#合計計算量 O(2N+2)

극해를 발견했다.

abc124c.py
S = input()
cnt = S[0::2].count("1") + S[1::2].count("0")
print(min(cnt,len(S)-cnt))

#000 の場合
#cnt = 0 + 1 = 1
#len(S)-cnt = 2
#ans = min(1,2)


라고 말하는 것 같다. 음, 자신에게는 조금 빠른 것 같다.

좋은 웹페이지 즐겨찾기