본문 바로가기
Programming/알고리즘

[백준/Python] 34069번 자리 바꾸기

by castberry_ 2025. 8. 27.
반응형

항상 cpp로 갈아타야지하면서 생각은 하는데 손이 잘 안가네요.. 


문제

https://www.acmicpc.net/problem/34069

 


코드

n, m = map(int, input().split())
data = []
for i in range(n):
    a = list(map(int, input().split()))
    data.append(a)

if n % 2== 0:
    print("Yes")
    for i in range(n):
        for j in range(m):
            if i % 2 == 0:
                print(data[i+1][j], end=' ')
            else:
                print(data[i-1][j], end=' ')
        print()
elif m % 2 == 0:
    print("Yes")
    for i in range(n):
        for j in range(m):
            if j % 2 == 0:
                print(data[i][j+1], end=' ')
            else:
                print(data[i][j-1], end=' ')
        print()
else:
    print("No")

 

자리를 1대1로 교체할 수 있는지 확인하는 문제입니다

 

가로나 세로 둘 중 하나이상이 짝수라면 자리가 좌우 혹은 위 아래로 반드시 자리를 바꿀 수 있으므로 YES, 

가로 세로 모두 홀수라면 No를 출력하게합니다. 

 

Yes의 경우에는 좌우 혹은 위아래로 짝수인 방향으로 바꿔주면 됩니다

반응형

댓글