백준 문제 링크
뒤집기 II
- 가장 안쪽(오른쪽 아래)부터 가장 바깥쪽(왼쪽 위)까지
역으로 살펴보면서, 동전이 1이면 그 범위에 해당하는 동전의 앞뒤를 바꾼다.
아래 그림을 참고하면 좋을 것 같다.
- 앞뒤를 바꾸는 함수 reverse를 만들고,
역으로 살펴보면서 동전이 1이면 reverse 함수를 실행시키고,
answer + 1 한다.- answer를 출력하면 끝
N,M = map(int, input().split())
coin = []
for _ in range(N):
coin.append(list(map(int, input())))
answer = 0
def reverse(x,y):
for i in range(x+1):
for j in range(y+1):
if coin[i][j] == 0:
coin[i][j] = 1
else:
coin[i][j] = 0
for i in range(N-1, -1, -1):
for j in range(M-1, -1, -1):
if coin[i][j] == 1:
reverse(i,j)
answer += 1
print(answer)