반응형
1. 문제
2. 코드
n = int(input())
l = list(map(int, input().split()))
cur = [0 for _ in range(n)]
cnt = 0
for i in range(n):
if l[i] != cur[i]:
cnt += 1
cur[i] = 1-cur[i]
if i < n-1:
cur[i+1] = 1-cur[i+1]
if i < n-2:
cur[i+2] = 1-cur[i+2]
print(cnt)
3. 풀이
그리디 알고리즘을 사용하면 된다. 지금 현재의 값이 중요하다.
앞에서부터 차례대로 보면서 i번째 같이 입력값의 i번째와 같으면 그대로 넘어가고, 같지 않으면 오른쪽 두 칸까지 반전(0->1, 1->0) 시켜준다.
입력값과 달랐던 횟수를 출력하면 되는 쉬운 문제이다.
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 3135번 - 라디오 (0) | 2022.01.21 |
---|---|
[백준] 16435번 - 스네이크버드 (0) | 2022.01.21 |
[백준] 1010번 - 다리 놓기 (파이썬) (0) | 2022.01.13 |
[백준] 10845번 - 큐 (0) | 2022.01.13 |
[백준] 5639번 - 이진 검색 트리 (0) | 2022.01.12 |