๐ ๋ฌธ์ ๋ฐ๋ก๊ฐ๊ธฐ
ํ๋ก๊ทธ๋๋จธ์ค
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)
'๐ป ์ฝํ > ๐ JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ๊ณต์ (1) | 2025.07.23 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ์งํ ์ ๊ธฐ (0) | 2025.07.23 |
| [ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ๋์์ ์ฌ์๊ธฐ (1) | 2025.07.21 |
| [ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ์ ์ฐ๊ทผ๋ฌด์ (3) | 2025.07.20 |
| [ํ๋ก๊ทธ๋๋จธ์ค/JAVA] ์๊ฒฉ์์คํ (0) | 2025.05.28 |