초이로그

[SW Expert Academy]2117:홈 방범 서비스 본문

Algorithms/SW Expert Academy

[SW Expert Academy]2117:홈 방범 서비스

수연초이 2021. 3. 5. 23:44

이런 문제를 보면 영상처리 덕분에 이미지 필터 작업만 생각나서 큰일이다..

 

for문을 여러개 써야해서 살짝 복잡했지만 결국 마름모 모양만 잘 구할 수 있다면 굉장히 쉬운 문제 같다.

현재 위치에서 x, y 축 방향으로 얼마나 떨어졌는지 계산한 뒤, 범위(마름모)안에 들어와있는 경우 집의 개수를 카운트하는 방식으로 해결하였다.

for(int k = 0; k <= N+1; k++){
            int homeCnt = 0;
            for(int i = 0; i < N; i++){
                for(int j = 0; j < N; j++){
                    int distX = Math.abs(i - x);
                    int distY = Math.abs(j - y);
                    if(distX + distY < k && city[i][j] == 1){
                        homeCnt++;
                    }
                }
            }
            if(((M*homeCnt) - (k*k + (k-1)*(k-1))) >= 0){ //이익이 남을때
                ans = Math.max(homeCnt, ans); //더 많은 집을 갖는 값으로 업데이트
            }
        }

github.com/SuyeonChoi/Algorithms/blob/master/SW%20Expert%20Academy/Java/Simultaion/p2117.java

 

SuyeonChoi/Algorithms

Personal Algorithm Study::solving BOJ, Programmers, and SW Expert Academy - SuyeonChoi/Algorithms

github.com