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번: 팰린드로미터 (1) | 2024.06.28 | 
| 🥈 14646번: 욱제는 결정장애야!! (1) | 2024.06.27 | 
