๋ฐฑ์ค€ 1455 ๋’ค์ง‘๊ธฐ ํŒŒ์ด์ฌ

2023. 1. 11. 23:49ใ†๐Ÿ”ฑ Algorithm/Greedy

 

1455๋ฒˆ: ๋’ค์ง‘๊ธฐ II

์„ธ์ค€์ด๋Š” ๋™์ „ ๋’ค์ง‘๊ธฐ๋ฅผ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ์„ธ์ค€์ด๋Š” ๋™์ „์„ N×M๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋™์ „์€ ์„ธ๋กœ๋กœ N๊ฐœ, ๊ฐ€๋กœ๋กœ M๊ฐœ ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์— ์ฐจ๊ณก์ฐจ๊ณก ๋†“์—ฌ์ ธ ์žˆ๋‹ค. ๋™์ „์˜ ์•ž๋ฉด์„ 0์ด๋ผ๊ณ  ํ•˜๊ณ  ๋’ท๋ฉด์„ 1์ด๋ผ๊ณ 

www.acmicpc.net

 

board = [list(map(int, list(input()))) for _ in range(N)]


def flip(R, C):
    for r in range(R + 1):
        for c in range(C + 1):
            # ๋ฐฉ๋ฒ• 1
            board[r][c] = 0 if board[r][c] else 1
            
            # ๋ฐฉ๋ฒ• 2
            board[r][c] ^= 1
            
            # ๋ฐฉ๋ฒ• 1, 2 ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ด์„œ ์‚ฌ์šฉ


count = 0
for n in range(N - 1, -1, -1):
    for m in range(M - 1, -1, -1):
        if board[n][m]:
            count += 1
            flip(n, m)

print(count)

 

๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด๋ฉด, ๋™์ „์„ ๋ชจ๋‘ ์•ž๋ฉด์œผ๋กœ ๋’ค์ง‘๋Š” ํšŸ์ˆ˜๊ฐ€ ๋ช‡๋ฒˆ์ธ์ง€ ๋ฌป๊ณ  ์žˆ๋‹ค. ๋’ค์ง‘๋Š” ํšŸ์ˆ˜๊ฐ€ ์ตœ์†Œ์ผ ๋•Œ๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋’ค์ง‘๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ์ตœ์†Œ๋ž€ ์›Œ๋”ฉ์€ ์–ด๋””์—๋„ ์—†๋‹ค!

 

๋’ค์ง‘์–ด ๋ง‰ ๋’ค์ง‘์–ด ์ค€๋‚ด~~~๋’ค์ง‘์–ด

๊ทธ๋ž˜์„œ ์ด์ค‘ for ๋ฌธ์„ ๊ณ„์† ๋Œ๋ ค๊ฐ€๋ฉฐ ์ „์ฒด ๋™์ „์„ ๋’ค์ง‘์œผ๋ฉด ๋œ๋‹ค.