[BOJ]백준#1455 Silver2 뒤집기 ll 🪙 (Python, 파이썬)

임준성·2022년 6월 6일
0

백준 Algorithm

목록 보기
22/59
post-thumbnail

백준 1455번
https://www.acmicpc.net/problem/1455


문제



후기

⏰ 풀이시간 20분 ++⏰

가장 우측 하단 오른쪽 아래부터 동전이 앞면인지 아닌지 확인한다.

(2,2)에 있는 동전을 뒤집게 되면, (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) (2,0) (2,1)

까지 모두 뒤집어 지기 때문에, 가장 오른쪽 아래부터 확인하며 1일 경우에 0으로 바꿔주고

0일 경우에는 1로 바꿔준다.

for문을 역으로 돌면서 flip함수가 실행될 때 마다 cnt를 1씩 증가시켜주고 마지막에

cnt를 출력하면 쉽게 답을 얻을 수 있다.

나의 풀이

import sys
input = sys.stdin.readline

def flip(x, y): #동전을 뒤집는 함수 

    for i in range(x + 1):

        for j in range(y + 1):

            if coin[i][j]==1:

                coin[i][j]=0
            
            else:
                coin[i][j]=1


N, M = map(int, input().split())

coin = [list(map(int, list(input().strip()))) for _ in range(N)]

cnt = 0

for i in range(N - 1, -1, -1):

    for j in range(M - 1, -1, -1): #가장 오른쪽 아래부터 거꾸로 내려온다.

        if coin[i][j]:

            cnt += 1

            flip(i, j)

print(cnt)
profile
아무띵크 있이

0개의 댓글