[JAVA/프로그래머스] LV.1 바탕화면 정리

윤소영·2023년 8월 13일
0

JAVA

목록 보기
26/41

문제






문제 답안

class Solution {
    public int[] solution(String[] wallpaper) {
        int[][] position = new int[2500][2];
        int cnt = 0;
        for(int i = 0; i < wallpaper.length; i++){
            for(int j = 0; j < wallpaper[i].length(); j++){
                if(wallpaper[i].charAt(j) == '#'){
                    position[cnt][0] = i;
                    position[cnt][1] = j;
                    cnt++;
                }
            }
        }
        int[][] find = new int[cnt][2];
        for(int i = 0; i < cnt; i++){
            for(int j = 0; j < 2; j++){
                find[i][j] = position[i][j];
            }
        }
        int lux = find[0][0];
        for(int i = 1; i < cnt; i++){
            if(lux > find[i][0])
                lux = find[i][0];
        }
        int luy = find[0][1];
        for(int i = 1; i < cnt; i++){
            if(luy > find[i][1])
                luy = find[i][1];
        }
        int rdx = find[0][0];
        for(int i = 1; i < cnt; i++){
            if(rdx < find[i][0])
                rdx = find[i][0];
        }
        int rdy = find[0][1];
        for(int i = 1; i < cnt; i++){
            if(rdy < find[i][1])
                rdy = find[i][1];
        }
        int[] answer = {lux, luy, rdx + 1, rdy + 1};
        return answer;
    }
}





답안 풀이

우선 wallpaper에서 #이 있는 좌표를 크기 미지정 배열 position에 저장.
크기를 cnt로 정해졌으면 find 배열에 저장.
find 배열에서 각각 i, j의 작은 값, 큰 값을 각각의 매개변수에 저장.





다른 사람들 풀이

class Solution {
    public int[] solution(String[] wallpaper) {
        int minX = Integer.MAX_VALUE;
        int minY = Integer.MAX_VALUE;
        int maxX = Integer.MIN_VALUE;
        int maxY = Integer.MIN_VALUE;
        for(int i=0; i< wallpaper.length;i++ ){
            for(int j=0; j<wallpaper[i].length();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);
                }
            }
        }
        return new int[]{minX,minY,maxX+1,maxY+1};
    }
}

깔끔하다........

0개의 댓글