Swift알고리즘
프로그래머스 코딩테스트 연습문제 lv2: 가장 큰 정사각형 찾기 (Swift)
앱등개발자IOS
2022. 6. 21. 02:23
생각보다 생각을 해야하는 문제였다!
풀이:
(1, 1)위치에서부터 탐색을 하며, 내 기준 ( 위, 왼쪽, 왼쪽위 ) 총 세 칸을 확인하고, 그들 중 최솟값이 1 이상인 경우에 그 값을
현재 내 칸에 더해준다.
1 1
1 1 과 같은 경우에는
1 1
1 2 가 될 것이다.
즉 한 변 길이가 2인 정사각형이 되었다라는 뜻!
2 3
2 1 인 경우에는 어떻게 될까? 이 경우는
현재 칸인 1에 주변 세 블록 중 최솟값인 2를 더해 3이 되어야하고,
실제로도 노란색으로 칠한 3*3 크기의 정사각형이 존재함을 확인할 수 있다!
또 한가지 주의해야할 점은
1. 모든 칸이 0으로 채워져있을 때, 0을 return해야하고,
2. 1이 하나라도 존재할 경우, answer를 일단 1로 갱신해주어야한다.
이 두가지만 처리해준다면, 풀이를 완성할 수 있는 문제였다!