도시와 비트코인

면접 대비

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

요약
지나갈 수 있는 칸이 1인 N×M 격자에서 왼쪽 위 칸에서 오른쪽 아래 칸으로 오른쪽과 아래 이동만으로 도달할 수 있는지 판정한다.
난이도

쉬움10점 중 2점

유형
동적 계획법, 배열, 시뮬레이션
정답자
아직 제출이 없습니다

문제

전날에 비해 비트코인의 시세가 백만원이나 오른 어느 아침, 진우는 거래소에 가서 비트코인을 매도하려고 한다. 현재 비트코인의 시세가 점점 떨어지고 있기 때문에 진우는 최대한 빨리 거래소에 가야 한다.

도시는 가로 NN, 세로 MM 크기의 격자 모양으로 이루어졌다. 진우는 북서쪽 끝에 있고 거래소는 남동쪽 끝에 있다. 도시의 일부 구역은 공터 또는 도로라서 진우가 지나갈 수 있지만, 어떤 구역은 건물이 있어서 진우가 갈 수 없다.

진우는 최대한 빨리 거래소에 가야 하므로, 동쪽(오른쪽) 또는 남쪽(아래쪽)으로만 이동하여 거래소로 도착할 수 있어야 한다. 진우를 도와 거래소로 갈 수 있는지 구하는 프로그램을 작성하여라. 진우의 현재 위치가 거래소일 수 있다.

입력

첫 번째 줄에 도시의 가로 크기 NN과 세로 크기 MM (1≤N,M≤3001 \le N, M \le 300)이 주어진다.

두 번째 줄부터 MM개의 줄에는 도시의 형태를 나타내는 NN개의 정수가 공백을 사이에 두고 주어진다. 각 칸이 1인 경우 진우가 갈 수 있는 칸을 의미하고 0인 경우 진우가 갈 수 없는 칸을 의미한다.

왼쪽 위의 끝 칸과 오른쪽 아래의 끝 칸은 모두 1이다.

출력

첫 번째 줄에 진우가 거래소로 갈 수 있으면 Yes를, 그렇지 않으면 No를 출력한다.

예제1

  1. 예제 1

    입력
    5 4
    1 1 1 1 1
    0 1 0 0 1
    1 0 0 0 1
    0 0 0 1 1
    
    예상 출력
    Yes