본문 바로가기

백준

[백준] 15729 - 방탈출

반응형

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