상세 컨텐츠

본문 제목

프로그래머스 코딩테스트 연습문제 lv2: 가장 큰 정사각형 찾기 (Swift)

Swift알고리즘

by 앱등개발자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로 갱신해주어야한다.

 

이 두가지만 처리해준다면, 풀이를 완성할 수 있는 문제였다!

관련글 더보기