- 첫번째 스위치를 눌렀는 지, 누르지 않았는 지를 분리하여 풀이
- 첫번째 스위치 이후부터는 이전 전구를 확인하고, 이전 전구가 다르다면 스위치를 켠다 (이전 전구, 현재 전구, 이후 전구를 켬. 단, i == N-1이라면 이후 전구를 켤 수 없음)
-> 이렇게 이전 전구를 비교하면서 갱신해야 지나온 전구의 상태가 변하지 않음
- for문이 종료된 후 src와 dest를 string으로 변환하여 비교
import sys
from collections import deque
N = int(input())
src = list(map(int, list(sys.stdin.readline()[:-1]))); src_bu = src.copy()
dest = list(map(int, list(sys.stdin.readline()[:-1])))
cnt = 0
for i in range(1, N):
if src_bu[i-1] != dest[i-1]:
cnt += 1
src_bu[i] = 1 - src_bu[i]
src_bu[i-1] = 1 - src_bu[i-1]
if i != N-1:
src_bu[i+1] = 1 - src_bu[i+1]
if ''.join(map(str, src_bu)) == ''.join(map(str, dest)):
print(cnt)
exit()
cnt = 1
src[0] = 1 - src[0]; src[1] = 1 - src[1]
for i in range(1, N):
if src[i-1] != dest[i-1]:
cnt += 1
src[i] = 1 - src[i]
src[i-1] = 1 - src[i-1]
if i != N-1:
src[i+1] = 1 - src[i+1]
if ''.join(map(str, src)) == ''.join(map(str, dest)):
print(cnt)
exit()
print(-1)