# ๋ฐํํ๋ฉด ์ ๋ฆฌ # 161990 # lv1 # Python
# ๋ฌธ์
์ฝ๋ฉํ
์คํธ๋ฅผ ์ค๋นํ๋ ๋จธ์ฑ์ด๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ๋ฌธ์ ๋ฅผ ํ๊ณ ๋์ค์ ๋ค์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๊ณต๋ถํ๋ ค๊ณ ์์ฑํ ์ฝ๋๋ฅผ ์ปดํจํฐ ๋ฐํํ๋ฉด์ ์๋ฌด ์์น์๋ ์ ์ฅํด ๋ก๋๋ค. ์ ์ฅํ ์ฝ๋๊ฐ ๋ง์์ง๋ฉด์ ๋จธ์ฑ์ด๋ ๋ณธ์ธ์ ์ปดํจํฐ ๋ฐํํ๋ฉด์ด ๋๋ฌด ์ง์ ๋ถํ๋ค๊ณ ์๊ฐํ์ต๋๋ค. ํ๋ก๊ทธ๋๋จธ์ค์์ ์์ฑํ๋ ์ฝ๋๋ ๊ทธ ๋ฌธ์ ์ ๊ฐ์ ๋ค์ ๋ณผ ์ ์๊ธฐ ๋๋ฌธ์ ์ ์ฅํด ๋ ํ์ผ๋ค์ ์ ๋ถ ์ญ์ ํ๊ธฐ๋ก ํ์ต๋๋ค.
์ปดํจํฐ ๋ฐํํ๋ฉด์ ๊ฐ ์นธ์ด ์ ์ฌ๊ฐํ์ธ ๊ฒฉ์ํ์
๋๋ค. ์ด๋ ์ปดํจํฐ ๋ฐํํ๋ฉด์ ์ํ๋ฅผ ๋ํ๋ธ ๋ฌธ์์ด ๋ฐฐ์ด wallpaper๊ฐ ์ฃผ์ด์ง๋๋ค. ํ์ผ๋ค์ ๋ฐํํ๋ฉด์ ๊ฒฉ์์นธ์ ์์นํ๊ณ ๋ฐํํ๋ฉด์ ๊ฒฉ์์ ๋ค์ ๋ฐํํ๋ฉด์ ๊ฐ์ฅ ์ผ์ชฝ ์๋ฅผ (0, 0)์ผ๋ก ์์ํด (์ธ๋ก ์ขํ, ๊ฐ๋ก ์ขํ)๋ก ํํํฉ๋๋ค. ๋น์นธ์ ".", ํ์ผ์ด ์๋ ์นธ์ "#"์ ๊ฐ์ ๊ฐ์ง๋๋ค. ๋๋๊ทธ๋ฅผ ํ๋ฉด ํ์ผ๋ค์ ์ ํํ ์ ์๊ณ , ์ ํ๋ ํ์ผ๋ค์ ์ญ์ ํ ์ ์์ต๋๋ค. ๋จธ์ฑ์ด๋ ์ต์ํ์ ์ด๋๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ ํ ๋ฒ์ ๋๋๊ทธ๋ก ๋ชจ๋ ํ์ผ์ ์ ํํด์ ํ ๋ฒ์ ์ง์ฐ๋ ค๊ณ ํ๋ฉฐ ๋๋๊ทธ๋ก ํ์ผ๋ค์ ์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋๋๊ทธ๋ ๋ฐํํ๋ฉด์ ๊ฒฉ์์ S(lux, luy)๋ฅผ ๋ง์ฐ์ค ์ผ์ชฝ ๋ฒํผ์ผ๋ก ํด๋ฆญํ ์ํ๋ก ๊ฒฉ์์ E(rdx, rdy)๋ก ์ด๋ํ ๋ค ๋ง์ฐ์ค ์ผ์ชฝ ๋ฒํผ์ ๋ผ๋ ํ๋์ ๋๋ค. ์ด๋, "์ S์์ ์ E๋ก ๋๋๊ทธํ๋ค"๊ณ ํํํ๊ณ ์ S์ ์ E๋ฅผ ๊ฐ๊ฐ ๋๋๊ทธ์ ์์์ , ๋์ ์ด๋ผ๊ณ ํํํฉ๋๋ค.
- ์ S(lux, luy)์์ ์ E(rdx, rdy)๋ก ๋๋๊ทธ๋ฅผ ํ ๋, "๋๋๊ทธ ํ ๊ฑฐ๋ฆฌ"๋ |rdx - lux| + |rdy - luy|๋ก ์ ์ํฉ๋๋ค.
- ์ S์์ ์ E๋ก ๋๋๊ทธ๋ฅผ ํ๋ฉด ๋ฐํํ๋ฉด์์ ๋ ๊ฒฉ์์ ์ ๊ฐ๊ฐ ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์๋๋ก ํ๋ ์ง์ฌ๊ฐํ ๋ด๋ถ์ ์๋ ๋ชจ๋ ํ์ผ์ด ์ ํ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด wallpaper = [".#...", "..#..", "...#."]์ธ ๋ฐํํ๋ฉด์ ๊ทธ๋ฆผ์ผ๋ก ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ฌํ ๋ฐํํ๋ฉด์์ ๋ค์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด S(0, 1)์์ E(3, 4)๋ก ๋๋๊ทธํ๋ฉด ์ธ ๊ฐ์ ํ์ผ์ด ๋ชจ๋ ์ ํ๋๋ฏ๋ก ๋๋๊ทธ ํ ๊ฑฐ๋ฆฌ (3 - 0) + (4 - 1) = 6์ ์ต์๊ฐ์ผ๋ก ๋ชจ๋ ํ์ผ์ ์ ํ ๊ฐ๋ฅํฉ๋๋ค.
(0, 0)์์ (3, 5)๋ก ๋๋๊ทธํด๋ ๋ชจ๋ ํ์ผ์ ์ ํํ ์ ์์ง๋ง ์ด๋ ๋๋๊ทธ ํ ๊ฑฐ๋ฆฌ๋ (3 - 0) + (5 - 0) = 8์ด๊ณ ์ด์ ์ ๋ฐฉ๋ฒ๋ณด๋ค ๊ฑฐ๋ฆฌ๊ฐ ๋์ด๋ฉ๋๋ค.
๋จธ์ฑ์ด์ ์ปดํจํฐ ๋ฐํํ๋ฉด์ ์ํ๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ๋ฐฐ์ด wallpaper๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ๋ฐํํ๋ฉด์ ํ์ผ๋ค์ ํ ๋ฒ์ ์ญ์ ํ๊ธฐ ์ํด ์ต์ํ์ ์ด๋๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ ๋๋๊ทธ์ ์์์ ๊ณผ ๋์ ์ ๋ด์ ์ ์ ๋ฐฐ์ด์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์. ๋๋๊ทธ์ ์์์ ์ด (lux, luy), ๋์ ์ด (rdx, rdy)๋ผ๋ฉด ์ ์ ๋ฐฐ์ด [lux, luy, rdx, rdy]๋ฅผ returnํ๋ฉด ๋ฉ๋๋ค.
# ์ ํ์ฌํญ
- 1 ≤ wallpaper์ ๊ธธ์ด ≤ 50
- 1 ≤ wallpaper[i]์ ๊ธธ์ด ≤ 50
- wallpaper์ ๋ชจ๋ ์์์ ๊ธธ์ด๋ ๋์ผํฉ๋๋ค.
- wallpaper[i][j]๋ ๋ฐํํ๋ฉด์์ i + 1ํ j + 1์ด์ ํด๋นํ๋ ์นธ์ ์ํ๋ฅผ ๋ํ๋ ๋๋ค.
- wallpaper[i][j]๋ "#" ๋๋ "."์ ๊ฐ๋ง ๊ฐ์ง๋๋ค.
- ๋ฐํํ๋ฉด์๋ ์ ์ด๋ ํ๋์ ํ์ผ์ด ์์ต๋๋ค.
- ๋๋๊ทธ ์์์ (lux, luy)์ ๋์ (rdx, rdy)๋ lux < rdx, luy < rdy๋ฅผ ๋ง์กฑํด์ผ ํฉ๋๋ค.
# ํ์ด
๊ธด ์กฐ๊ฑด๊ณผ ๋ฌธ์ฅ์ ๋นํด ๊ตฌํ์ด ๋น๊ต์ ๊ฐ๋จํ ๋ฌธ์ ์๋ค. ์ด๊ณผ ํ์ ์ ํํ ๊ตฌ๋ถ๊ณผ ๋์ ๋น๊ต์ ๋ํ ์์ด๋์ด๋ง ์์ผ๋ฉด ์๊ฐ๋ณด๋ค ๋ ์ฝ๊ฒ ํ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
def solution(wallpaper):
# <์์ด๋์ด>
# ๊ฐ์ฅ ์ผ์ชฝ ์ ~ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋
# 1๋ฒ ์์ : (0, 0) > x, (0, 1) > o, ...
# 1, 5 <-> 3, 3 (๋ ์์ ํ, ๋ ์์ ์ด) -> ์์์ (1, 3)
# start_row, start_col = [], []
# min(start_row, start_col)
# 1, 5 <-> 3, 3 (๋ ํฐ ํ, ๋ ํฐ ์ด) -> ๋ ์ (5, 3)
# end_row, end_col = [], []
# max(end_row, end_col)
start_row, start_col = [], []
for i in range(len(wallpaper)): # wallpaper ์์์ ์ ๊ทผ
for j in range(len(wallpaper[0])): # ์์๋ผ๋ฆฌ์ ๊ธธ์ด๋ ๋์ผํ๋ฏ๋ก, 0๋ฒ์งธ ์ธ๋ฑ์ค๊ฐ์ ์ํ.
if wallpaper[i][j] == "#": # ๋ง์ฝ '#'์ด ์์ผ๋ฉด,
start_row.append(i)
start_col.append(j)
else:
pass
end_row = max(start_row) + 1 # ์ธ๋ฑ์ค ๊ฐ๋ณด๋ค 1์ด ์ปค์ผ ์ปค๋ฒ๋จ.
end_col = max(start_col) + 1 # "
return [min(start_row), min(start_col), end_row, end_col] # '#'์ด ์๋ ํ๊ณผ ์ด๋ค ์ค ๊ฐ์ฅ ์์ ๊ฐ์ '์์์ '