문제 링크입니다: https://www.acmicpc.net/problem/14925
백준 1915번(http://jaimemin.tistory.com/452)과 똑같은 문제였습니다.
1915번을 풀 때는 인덱스를 0부터 시작해서 조건문을 추가했어야했지만 이번에는 인덱스를 1부터 시작해서 조건을 추가하지 않아도 AC를 받을 수 있었습니다.
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
const int MAX = 1000 + 1;
int M, N;
int farm[MAX][MAX];
int cache[MAX][MAX];
int getLength(void)
{
int side = 0; //변의 최대 길이
for (int y = 1; y <= M; y++)
for (int x = 1; x <= N; x++)
if (farm[y][x] == 0)
{
//←, ↖, ↑ 방향을 확인 후 최소 값 + 1
cache[y][x] = min(min(cache[y - 1][x], cache[y - 1][x - 1]), cache[y][x - 1]) + 1;
side = max(side, cache[y][x]);
}
return side;
}
int main(void)
{
cin >> M >> N;
for (int i = 1; i <= M; i++)
for (int j = 1; j <= N; j++)
cin >> farm[i][j];
cout << getLength() << endl;
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 14939번 불 끄기 (0) | 2018.07.13 |
---|---|
백준 14927번 전구 끄기 (0) | 2018.07.13 |
백준 14924번 폰 노이만과 파리 (0) | 2018.07.13 |
백준 14923번 미로 탈출 (0) | 2018.07.13 |
백준 14922번 부분평균 (0) | 2018.07.13 |