아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

노노그램

면접 대비

시간 제한1초메모리 제한1024 MB

요약
흑백 격자가 주어질 때 각 행과 각 열에서 연속한 검은 칸 묶음의 길이를 차례로 출력한다.
난이도

쉬움10점 중 2점

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

문제

노노그램은 격자를 검은 칸과 흰 칸으로 채워 만든 그림을 복원하는 퍼즐입니다. 격자의 각 행 앞에는 숫자들이 적혀 있는데, 이 숫자들은 흰 칸으로 구분된, 연속된 검은 칸으로 이루어진 블록들의 길이와 순서를 나타냅니다. 열 위에도 같은 방식으로 숫자가 적혀 있습니다. 각 행과 각 열에서 지정된 길이의 검은 블록들은 지정된 순서대로 나타나야 하며, 서로 다른 두 검은 블록 사이에는 항상 흰 칸이 최소 한 개 있어야 합니다.

노노그램 그림

주어진 그림에 대응하는 각 행과 각 열의 숫자 설명을 찾아 주는 프로그램을 작성하세요.

입력

첫째 줄에 격자의 행의 수 NN (1≤N≤1001 \le N \le 100)과 열의 수 MM (1≤M≤1001 \le M \le 100)이 정수로 주어집니다. 다음 NN개의 줄에는 각각 정확히 MM개의 문자가 주어지며, 점(.)은 흰 칸을, 우물 정자(#)는 검은 칸을 나타냅니다.

출력

정확히 N+MN + M개의 줄을 출력합니다. 처음 NN개의 줄에는 각 행에 대한 숫자들을 출력합니다. 즉 첫째 행에 대한 숫자들을 1번째 줄에, 둘째 행에 대한 숫자들을 2번째 줄에, ... 이런 식으로 위에서 아래 순서로 출력합니다. 그다음 MM개의 줄에는 각 열에 대한 숫자들을 출력합니다. 즉 가장 왼쪽 열에 대한 숫자들을 N+1N + 1번째 줄에, 왼쪽에서 둘째 열에 대한 숫자들을 N+2N + 2번째 줄에, ... 이런 식으로 왼쪽에서 오른쪽 순서로 출력합니다. 한 줄 안에서 블록의 길이들은 공백 하나로 구분합니다. 어떤 행이나 열에 검은 칸이 하나도 없으면 해당 줄에는 0을 출력합니다.

예제2

  1. 예제 1

    입력
    4 5
    #...#
    .#.#.
    ..#..
    .###.
    
    예상 출력
    1 1
    1 1
    1
    3
    1
    1 1
    2
    1 1
    1
    
  2. 예제 2

    입력
    1 3
    #.#
    
    예상 출력
    1 1
    1
    0
    1