Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป ์ฝ”ํ…Œ/๐Ÿ“Œ JAVA

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/JAVA] ๋ฐ”ํƒ•ํ™”๋ฉด ์ •๋ฆฌ

๋ฐ˜์‘ํ˜•

 

 

 

๐Ÿ”— ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

 

๐Ÿ“Œ ๋ฌธ์ œ ์š”์•ฝ

1๏ธโƒฃ ๋ฌธ์ž์—ด ๋ฐฐ์—ด wallpaper๋Š” ์ปดํ“จํ„ฐ ๋ฐ”ํƒ•ํ™”๋ฉด์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

2๏ธโƒฃ "#"์€ ํŒŒ์ผ์ด ์žˆ๋Š” ์นธ์ด๊ณ , "."์€ ๋นˆ์นธ์ด๋‹ค.

3๏ธโƒฃ ํ•œ ๋ฒˆ์˜ ๋“œ๋ž˜๊ทธ๋กœ ๋ชจ๋“  ํŒŒ์ผ์„ ์„ ํƒํ•ด์„œ ์ง€์šฐ๊ณ ์ž ํ•œ๋‹ค.

4๏ธโƒฃ ๋“œ๋ž˜๊ทธ๋Š” (lux, luy) ~ (rdx, rdy)๋กœ ์ง์‚ฌ๊ฐํ˜•์„ ํ˜•์„ฑํ•˜๋ฉฐ, ์ตœ์†Œํ•œ์˜ ์˜์—ญ์„ ์„ ํƒํžˆ์•ผ ํ•œ๋‹ค.

5๏ธโƒฃ ๋ฐ˜ํ™˜ ํ˜•์‹: [lux, luy, rdx, rdy]

 

 

โœ… ์ตœ์ข… ์ฝ”๋“œ

public class Solution {
    public int[] solution(String[] wallpaper) {
        int[] answer = new int[4];

        int top = -1;
        int bottom = -1;
        int left = -1;
        int right = -1;

        for(int i = 0; i < wallpaper.length; i++) {
            for(int j = 0; j < wallpaper[i].length(); j++) {
                if(wallpaper[i].charAt(j) == '#') {
                    if(top == -1 || top > i) {
                        top = i;
                    }

                    if(left == -1 || left > j) {
                        left = j;
                    }

                    if(right < j) {
                        right = j;
                    }

                    if(bottom < i) {
                        bottom = i;
                    }
                }
            }
        }

        answer[0] = top;
        answer[1] = left;
        answer[2] = bottom + 1;
        answer[3] = right + 1;

        return answer;
    }
}

 

 

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์‹คํ–‰ ํ๋ฆ„ ์˜ˆ์‹œ

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž…๋ ฅ์ด ๋“ค์–ด์™”๋‹ค๊ณ  ํ•˜์ž.

[".#...", 
 "..#..", 
 "...#."]

 

์ด๋ฅผ ํ‘œ๋กœ ๋ณด๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

0ํ–‰: . # . . .
1ํ–‰: . . # . .
2ํ–‰: . . . # .

 

์ฆ‰, ๊ฐ€์žฅ ์œ„์ชฝ top = 0

๊ฐ€์žฅ ์•„๋ž˜์ชฝ bottom = 2

๊ฐ€์žฅ ์™ผ์ชฝ left = 1

๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ right = 3

 

 

๊ทธ๋Ÿฌ๋‚˜ ์ค‘์š”ํ•œ ๊ฑด bottom๊ณผ right ๋ถ€๋ถ„์ธ๋ฐ,

2๋ฒˆ์งธ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ด ํŒŒ์ผ์„ ํฌํ•จํ•ด์•ผ ๋˜๊ธฐ ๋•Œ๋ฌธ์—

bottom๊ณผ right์— +1์”ฉ ํ•ด์ฃผ์–ด์„œ ์šฐ์ธก ํ•˜๋‹จ์˜ ๋์ ์„ ์„ ํƒํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

 

์ฆ‰, ์ตœ์ข… ๋‹ต์€ ์œ„์—์„œ ๊ตฌํ•œ [0, 1, 2, 3]์ด ์•„๋‹ˆ๋ผ,

[0, 1, 2 + 1, 3 + 1] ์ฆ‰, [0, 1, 3, 4]์ด๋‹ค.

 

 

๐Ÿ’ก ํ•ต์‹ฌ ํฌ์ธํŠธ

top, left๋Š” ์‹œ์ž‘์  ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋˜์ง€๋งŒ,

bottom, right๋Š” ๋งˆ์ง€๋ง‰ ํŒŒ์ผ์˜ ์•„๋ž˜ ํ–‰, ์˜ค๋ฅธ์ชฝ ์—ด์˜ ๊ฒฉ์ž์ ๊นŒ์ง€ ํฌํ•จํ•ด์•ผ ํ•˜๋ฏ€๋กœ +1์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

 

 

๐Ÿ•‘ ์‹œ๊ฐ„ ๋ณต์žก๋„

ํ–‰๊ณผ ์—ด์„ ์ „์ฒด ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ O(N * M)

๋ฐ˜์‘ํ˜•