๐ค๋ฌธ์ ํด๊ฒฐ
์ฟผ๋ฆฌ๋ ๊ฑฐ๊พธ๋ก ์์
๋์ด๋ฉด ๋๋ฆฌ๊ณ
๋์ด ์๋๋ฉด ์ด๋
๋ช ๋ น: ์๋ก ํ์นธ (์๋์ ์์ด์ผ ์๋ก ์์ ๋ ๋ณ์ ๋์ฐฉํ ์ ์๋ค or ์ ์๋ฆฌ์ฌ๋ ์๋ก ํ์นธ์ด๋ฉด ์ด์งํผ ๋์ด๊ธฐ ๋๋ฌธ์ ๋ณ์ ๋์ฐฉํ ์ ์๋ค)
๋ช ๋ น: ์ผ์ชฝ์ผ๋ก ํ์นธ (์ค๋ฅธ์ชฝ์ ์์ด์ผ ์ผ์ชฝ์ผ๋ก ์์ ๋ ๋ณ์ ๋์ฐฉํ ์ ์๋ค.)
๋ช ๋ น: ์๋ก ์ธ์นธ (์๋์ชฝ์ ์์ด์ผ ์๋ก... ๊ทธ๋ฌ๋ ๋์ด๊ธฐ ๋๋ฌธ์ ๋๋ฆด ์ ์๋ค.)
๋ช ๋ น: ์ค๋ฅธ์ชฝ์ผ๋ก ํ์นธ(์ผ์ชฝ์ ์์ด์ผ ์ค๋ฅธ์ชฝ์ผ๋ก ์์ ๋ ๋ณ์ ๋์ฐฉ๊ฐ๋ฅ
๋ช ๋ น: ์๋ก ๋์นธ ( ์๊น ์๋ก์ธ์นธ์ธ ๊ฒฝ์ฐ๋ ๊ฐ์ )
๋ช ๋ น: ์๋๋ก ํ์นธ
answer = (x_max - x_min + 1) * (y_max - y_min + 1)
๐จ ์ค๊ฐ์ ๋ฒ์๋ฅผ ์์ ๋ฒ์ด๋์ ๊ฒฐ๊ณผ๊ฐ 0์ธ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ๋ค.
๐ป์์ค ์ฝ๋
def solution(n, m, x, y, queries):
answer = 0
x_min, x_max, y_min, y_max = x, x, y, y
for idx in range(len(queries) - 1, -1, -1):
direc, dist = queries[idx]
if direc == 0: # ์ข(์ค๋ฅธ์ชฝ์์ ์์)
y_max += dist # ์ค๋ฅธ์ชฝ์ผ๋ก ๋๋ฆฌ๊ธฐ
if y_max > m - 1: # ๋ฒ์ ๋ฒ์ด๋๋ฉด
y_max = m - 1 # ๋๊ฐ์ผ๋ก
if y_min != 0: # ์ผ์ชฝ ๊ฐ์ด ๋์ด ์๋๋ฉด ๋ฒ์ ์ถ์
y_min += dist
elif direc == 1: # ์ฐ(์ผ์ชฝ์์ ์์)
y_min -= dist
if y_min < 0:
y_min = 0
if y_max != m - 1:
y_max -= dist
elif direc == 2: # ์(์๋์ ์์)
x_max += dist
if x_max > n - 1:
x_max = n - 1
if x_min != 0:
x_min += dist
else: # ํ(์์์ ์์)
x_min -= dist
if x_min < 0:
x_min = 0
if x_max != n - 1:
x_max -= dist
if y_min > m - 1 or y_max < 0 or x_min > n - 1 or x_max < 0:
return answer
else:
answer = (y_max - y_min + 1) * (x_max - x_min + 1)
return answer
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค
๋งํฌ: ๊ณต ์ด๋ ์๋ฎฌ๋ ์ด์
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] SWEA - 1209. [S/W ๋ฌธ์ ํด๊ฒฐ ๊ธฐ๋ณธ] 2์ผ์ฐจ - Sum (0) | 2022.03.21 |
---|---|
[python] SWEA - 13547. ํ์จ๋ฆ (0) | 2022.02.22 |
[python] ํ๋ก๊ทธ๋๋จธ์ค - ์์ดํ ์ค๊ธฐ(์ํด๋ฆฌ ์ฑ๋ฆฐ์ง) (0) | 2022.02.11 |
[python] ํ๋ก๊ทธ๋๋จธ์ค - 110 ์ฎ๊ธฐ๊ธฐ(์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2) (0) | 2022.02.10 |
[python] ํ๋ก๊ทธ๋๋จธ์ค - ์คํ ์์ด(์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ1) (0) | 2022.02.09 |