99클럽 코테 스터디 3일차 TIL + 완전탐색

mtak·2025년 4월 2일
post-thumbnail

https://school.programmers.co.kr/learn/courses/30/lessons/161990?language=java

시행착오

class Solution {
    public int[] solution(String[] wallpaper) {
        int lux = 100, luy = 100, rdx = 100, rdy = 100;
        for (int x = 0; x < wallpaper.length; x++) {
            boolean flag = false;
            for (int y = 0; y < wallpaper[0].length(); y++ ) {
                if (wallpaper[x].charAt(y) == '#') {
                    lux = Math.min(lux, x);
                    luy = Math.min(luy, y);
                    System.out.println(lux + " " + luy);
                    flag = true;
                    break;
                }
            }
            if (flag) break;
        }
        for (int x = wallpaper.length - 1; x >= 0; x--) {
            boolean flag = false;
            for (int y = wallpaper[0].length() - 1; y >= 0; y--) {
                if (wallpaper[x].charAt(y) == '#') {
                    rdx = Math.min(rdx, x + 1);
                    rdy = Math.min(rdy, y + 1);
                    flag = true;
                    break;
                }
            }
            if (flag) break;
        }
        int[] answer = new int[]{lux, luy, rdx, rdy};
        return answer;
    }
}

rdx, rdy는 가장 큰 값을 찾아야 한다. 하지만 끝에서부터 탐색해 #을 만나는 순간 멈춰버리면, 가장 큰 값을 구할 수 없다.
고로 완전탐색을 하며 각 좌표를 잡아야 한다.

결과

class Solution {
    public int[] solution(String[] wallpaper) {
        int lux = Integer.MAX_VALUE, luy = Integer.MAX_VALUE;
        int rdx = Integer.MIN_VALUE, rdy = Integer.MIN_VALUE;

        for (int x = 0; x < wallpaper.length; x++) {
            for (int y = 0; y < wallpaper[0].length(); y++) {
                if (wallpaper[x].charAt(y) == '#') {
                    lux = Math.min(lux, x);
                    luy = Math.min(luy, y);
                    rdx = Math.max(rdx, x + 1);
                    rdy = Math.max(rdy, y + 1);
                }
            }
        }

        return new int[]{lux, luy, rdx, rdy};
    }
}
profile
노는게 젤 조아. 친구들 모여라!!

0개의 댓글