본문 바로가기

카테고리 없음

프로그래머스_Level1_바탕화면 정리

이 문제는 생각보다 간단하다.맨 처음 화면의 좌표 2개를 보고 dfs문제라고 생각했으나 다시 생각을 해보니까 결국 모든 

파일을 드래그하려면 가장 작은 x좌표와 y좌표를 찍고 그 다음 가장 큰 x좌표와 y좌표를 찍는다면 모든 파일을 드래그가 

가능하다.

여기서 사용한 내장함수는 Math의 min과 max메소드로 각각 두 수를 비교하여 가장 작은 값과(min) 가장 큰 값을 int로 리턴해준다.

초기 min과 max값을 잘 초기화 해주는 것이 관건이다.

class Solution {
    public int[] solution(String[] wallpaper) {
        int row = wallpaper.length;
        int column = wallpaper[0].length();

        int minX = row; // 초기값을 row로 설정
        int minY = column; // 초기값을 column으로 설정
        int maxX = 0;
        int maxY = 0;

        for (int i = 0; i < row; i++) {
            for (int j = 0; j < column; j++) {
                if (wallpaper[i].charAt(j) == '#') {                  
                    minX = Math.min(minX, i);
                    minY = Math.min(minY, j);
                    maxX = Math.max(maxX, i);
                    maxY = Math.max(maxY, j);
                }
            }
        }

        int[] answer = new int[4];
        answer[0] = minX;
        answer[1] = minY;
        answer[2] = maxX+1;
        answer[3] = maxY+1;
        return answer;
    }
}