딸깍

면접 대비

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

요약
N행 M열 숫자 격자가 주어질 때, 세그먼트 하나를 직접 켠 뒤 인접 전파와 같은 디스플레이 공유 연결만으로 각 숫자가 요구하는 세그먼트를 정확히 켤 수 있는지 판정한다.
난이도

보통10점 중 6점

유형
그래프, BFS, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

7-세그먼트 디스플레이는 아래 그림과 같이 7개의 세그먼트 a,b,c,d,e,f,ga, b, c, d, e, f, g로 이루어져 있다.

7-세그먼트 디스플레이에 세그먼트를 적절히 켜서 아래 그림처럼 00부터 99까지의 숫자 중 하나를 표시할 수 있다. 초록 세그먼트가 켜져 있는 세그먼트를 나타낸다.

알고리즘 학회 영과일은 각 칸이 7-세그먼트 디스플레이로 구성된 NN행 MM열 격자 형태의 전광판을 하나 보유하고 있다.

전광판의 xx행 yy열에 해당하는 디스플레이의 각 세그먼트는 각각 a_x,y,b_x,y,⋯ ,g_x,ya\_{x,y}, b\_{x,y}, \cdots, g\_{x,y}와 같이 나타낼 수 있다.

아래 그림은 22행 33열로 이루어진 전광판의 예시이다.

영과일의 성실한 학회원 혁준이는 이 전광판을 이용해 NN행 MM열의 숫자 데이터를 나타내려고 한다.

처음에, 이 전광판에 존재하는 모든 세그먼트는 꺼져있다.

세그먼트를 켜는 방법은 직접 연결과 간접 연결, 공유 연결 세 가지가 존재한다.

  • 세그먼트 위치를 나타내는 문자 pp와 정수 x,yx, y를 골라서 직접 연결하면 세그먼트 p_x,yp\_{x,y}가 켜진다. (p∈a,b,c,d,e,f,g;(p \in \\{ a,b,c,d,e,f,g \\} ; 1≤x≤N;1 \le x \le N ; 1≤y≤M)1 \le y \le M)
  • 켜진 세그먼트와 인접한 다른 세그먼트를 간접 연결하면 해당 세그먼트가 켜진다. 인접한 세그먼트의 정의는 노트 탭을 참고한다.
  • 직접 연결 혹은 간접 연결된 세그먼트와 같은 디스플레이에 존재하는 세그먼트들은 공유 연결을 통해 켤 수 있다.

직접 연결을 한 번만 수행하여 NN행 MM열의 숫자 데이터를 모두 전광판에 나타낼 수 있는지 알아보자.

입력

첫 번째 줄에 전광판과 숫자 데이터의 크기를 나타내는 두 정수 NN과 MM이 공백으로 구분되어 주어진다. (1≤N,M≤1,000)(1 \le N,M \le 1\\,000)

두 번째 줄부터 NN개의 줄에 걸쳐 숫자 데이터가 한 줄에 MM개씩 공백 없이 주어진다. 모든 데이터는 00부터 99까지의 숫자 중 하나이다.

출력

직접 연결을 한 번만 수행하여 숫자 데이터를 모두 전광판에 나타낼 수 있으면 YES, 그렇지 않으면 NO를 출력한다.

힌트

두 세그먼트가 서로 긴 쪽 면을 맞대고 있다면 인접한 세그먼트라고 한다.

아래 그림에서 인접한 세그먼트끼리는 같은 색상으로 색칠되어 있다.

예제2

  1. 예제 1

    입력
    2 2
    00
    01
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    2 3
    234
    568
    
    예상 출력
    YES