728x90
SMALL
import sys; input = sys.stdin.readline
def solve():
N, M = map(int, input().split())
grid = []
count_0 = count_1 = 0
for _ in range(N):
row = list(map(int, input().split()))
grid.extend(row)
count_0 += row.count(0)
count_1 += row.count(1)
if count_0 % 2 != 0 or count_1 % 2 != 0:
return -1
for i in range(N):
for j in range(M):
idx = i * M + j
if j < M - 1 and grid[idx] == grid[idx + 1]:
return 1
if i < N - 1 and grid[idx] == grid[idx + M]:
return 1
return -1
print(solve())
- 그리디한 접근으로 2D 그리드의 좌표값을 1D array의 인덱스로 변환하여 인접한 같은 숫자 카드를 확인하였습니다.
728x90
LIST
'알고리즘 문제 > 랜덤 마라톤 (solved.ac)' 카테고리의 다른 글
🥈 25193번: 곰곰이의 식단 관리 (0) | 2024.07.04 |
---|---|
🥉 13235번: 팰린드롬 (0) | 2024.07.03 |
🥈 19621번: 회의실 배정 2 (0) | 2024.06.29 |
🥈 4096번: 팰린드로미터 (0) | 2024.06.28 |
🥈 14646번: 욱제는 결정장애야!! (0) | 2024.06.27 |