백준 32994 '데이브의 고민'

DoubleDeltas·2026년 4월 1일

알고리즘 문제풀이

목록 보기
115/117

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

아이디어

문제를 요약하면, 모서리 칸을 제외한 모든 칸에 대해, 자신의 칸과 주변 4칸에 모두 1~5의 숫자가 들어가도록 N×MN \times M 칸을 배치하도록 하는 문제다.

먼저 떠오른 해는 아래와 같이 배치하는 것이다. (맨 첫 칸의 숫자는 임의로)

이를 일반식으로 쓰면 Ayx=((2y+x+b)mod  5)+1A_{yx}=((2y+x+b)\mod5) + 1 정도로 쓸 수 있을 것이다.
모듈로 55 기준, 좌우로 −1-1, +1+1, 상하로 −2-2, +2+2의 값이 포함되니 자신의 칸까지 포함하면 반드시 1~5가 모두 포함될 수 밖에 없음을 알 수 있다.

또, 이 행렬을 전치시킨 (AT)yx=((y+2x+b)mod  5)+1(A^T)_{yx}=((y+2x+b)\mod5) + 1도 역시 답이 될 것이다.

코드 (Python)

N, M = map(int,input().split())
for y in range(N):
    for x in range(M):
        print((y*2+x) % 5 + 1, end=' ')
    print()

메모리 및 시간

  • 메모리: 114380 KB
  • 시간: 156 ms
profile
유사 개발자

0개의 댓글