만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

역 노노그램

면접 대비

시간 제한2초메모리 제한512 MB

요약
해결된 노노그램 격자가 주어지면 각 행과 각 열에 대해 연속한 X 구간의 길이를 차례로 출력한다.
난이도

쉬움10점 중 3점

유형
구현, 시뮬레이션, 문자열, 배열
정답자
아직 제출이 없습니다

문제

노노그램은 정사각형 격자에서 푸는 연필 퍼즐이다. 격자는 처음에 모두 비어 있고, 격자의 왼쪽과 위쪽에 적힌 숫자가 어떤 칸을 칠해야 하는지 알려 준다. 각 숫자는 그 행이나 열에서 끊기지 않고 이어진 칠한 칸 덩어리의 길이를 나타내며, 숫자는 나타나는 순서대로 적는다. 예를 들어 단서 "4 8 3"은 길이 4인 덩어리, 길이 8인 덩어리, 길이 3인 덩어리가 이 순서로 있고, 이웃한 두 덩어리 사이에 빈 칸이 적어도 하나 있다는 뜻이다. 아래에 작은 예시와 그 답이 있다.

이 문제에서는 반대로 푼다. 다 푼 노노그램이 주어지면 격자의 왼쪽과 위쪽에 적혀야 할 숫자를 구한다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 격자의 크기를 나타내는 정수 nn (2≤n≤1002 \le n \le 100)으로 시작한다. 다음 nn개 줄에는 각각 정확히 nn개의 문자가 있고, 빈 칸은 '.', 칠한 칸은 'X'이다. 입력의 마지막 줄에는 0 하나만 주어진다.

출력

각 테스트 케이스마다 2n2n개 줄을 출력한다. 처음 nn개 줄은 위에서 아래 순서로 각 행의 숫자이고, 다음 nn개 줄은 왼쪽에서 오른쪽 순서로 각 열의 숫자이다. 칠한 칸이 하나도 없는 행이나 열에는 0을 출력한다. 같은 줄에 있는 숫자 사이는 공백 하나로 구분한다. 어느 줄에도 앞뒤 공백을 남기지 않고, 출력 줄 사이에 빈 줄을 넣지 않는다.

예제1

  1. 예제 1

    입력
    3
    XXX
    .XX
    .X.
    3
    X.X
    ..X
    X..
    5
    ..X..
    .XXX.
    X.X.X
    ..X..
    ..X..
    0
    
    예상 출력
    3
    2
    1
    1
    3
    2
    1 1
    1
    1
    1 1
    0
    2
    1
    3
    1 1 1
    1
    1
    1
    1
    5
    1
    1