프로그래머스 코테 바탕화면 정리 [자력]

작성자 : 조회수 :

제목 : 프로그래머스 바탕화면 정리

 

 

설명: 프로그래머스 코딩테스트 바탕화면정리를 풀었습니다

 

 

문제 자체를 이해하는데 시간이 더 걸린것 같습니다

 

소요시간 : 30

 

 

// (1,3) 1 y 3dl x축이다

    // top, left 구해서 left 탑으로 계속올려서 만나는 top 왼쪽으로 계속 보내서 만나게 하자

    // right 아래로 계속 내리고, bottom 오른쪽으로 계속 보내자

    // 그럼 먼저 top, left,right, bottom 구해야함

    // 구했으면 각각의순서대로 진행

    public static int[] solution(String[] wallpaper) {

        // (y,x)

        int top = 10000; // y, i 낮은수

        int left = 10000; //  j 가장 낮은

        int bottom = 0; // i 가장큼

        int right = 0; // j 가장큼

        // i y축이

        for (int i = 0; i < wallpaper.length; i++) {

            for (int j = 0; j < wallpaper[i].length(); j++) {

                char a = wallpaper[i].charAt(j);

                if(a == '#'){

                    if(top > i) top = i;

                    if(left > j) left = j;

                    if(bottom < i) bottom = i;

                    if(right < j) right = j;

                }

            }

        }

        int[] answer = {top,left,bottom+1,right+1};

        return answer;

    }

 

 

따로 자료구조까지 사용할 필요없이 문제를 이해한 후

 

간단하게 작성할 수 있습니다.

 

각각 맨 위, 아래, 오른쪽, 아래의 좌표를 따와 선을 그어 만나는 점이 드래그 끝점이라고 생각하면 편합니다.

 

조금 주의해야할 점은 왼쪽위 끝점과 오른아래 끝점중 오른쪽아래는 +1을 해줘서 처리해야합니다.

 

드래그 아래방향이기때문입니다.

 

 

문제를 푼 사람들이 꽤 있었고 lv1인데 정답률이 50퍼센트 미만이여서

 

풀어보았는데 생각보다 쉬웠습니다.