๋ฌธ์
์๊ทผ์ด๋ 2์ฐจ์ ํ๋ฉด ์์์ ์์ง์ผ ์ ์๋ ๊ฑฐ๋ถ์ด ๋ก๋ด์ ํ๋ ๊ฐ์ง๊ณ ์๋ค. ๊ฑฐ๋ถ์ด ๋ก๋ด์๊ฒ ๋ด๋ฆด ์ ์๋ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ด ๋ค๊ฐ์ง๊ฐ ์๋ค.
- F: ํ ๋๊ธ ์์ผ๋ก
- B: ํ ๋๊ธ ๋ค๋ก
- L: ์ผ์ชฝ์ผ๋ก 90๋ ํ์
- R: ์ค๋ฅธ์ชฝ์ผ๋ก 90๋ ํ์
L๊ณผ R๋ช ๋ น์ ๋ด๋ ธ์ ๋, ๋ก๋ด์ ์ด๋ํ์ง ์๊ณ , ๋ฐฉํฅ๋ง ๋ฐ๊พผ๋ค. ๋ช ๋ น์ ๋์ดํ ๊ฒ์ ๊ฑฐ๋ถ์ด ๋ก๋ด์ ์ปจํธ๋กค ํ๋ก๊ทธ๋จ์ด๋ผ๊ณ ํ๋ค.
์๊ทผ์ด๋ ์์ ์ ์ปจํธ๋กค ํ๋ก๊ทธ๋จ์ผ๋ก ๊ฑฐ๋ถ์ด๊ฐ ์ด๋ํ ์์ญ์ ๊ณ์ฐํด๋ณด๋ ค๊ณ ํ๋ค. ๊ฑฐ๋ถ์ด๋ ํญ์ x์ถ๊ณผ y์ถ์ ํํํ ๋ฐฉํฅ์ผ๋ก๋ง ์ด๋ํ๋ค. ๊ฑฐ๋ถ์ด๊ฐ ์ง๋๊ฐ ์์ญ์ ๋ชจ๋ ํฌํจํ ์ ์๋ ๊ฐ์ฅ ์์ ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ์ง์ฌ๊ฐํ์ ๋ชจ๋ ๋ณ์ x์ถ์ด๋ y์ถ์ ํํ์ด์ด์ผ ํ๋ค.
์๋ ๊ทธ๋ฆผ์์ ๊ฑฐ๋ถ์ด๋ ๊ฐ์ฅ ์ฒ์์ (0, 0)์ ์๊ณ , ๋ถ์ชฝ์ ์ณ๋ค๋ณด๊ณ ์๋ค. ์ปจํธ๋กค ํ๋ก๊ทธ๋จ์ด FLFRFLBRBLB์ธ ๊ฒฝ์ฐ์ ๊ฑฐ๋ถ์ด๋ ์๋์ ๊ฐ์ด ์์ง์ธ๋ค. ํ์์ผ๋ก ๋น๊ธ์น ๋ถ๋ถ์ด ๊ฑฐ๋ถ์ด๊ฐ ์ง๋๊ฐ ์์ญ์ ๋ชจ๋ ํฌํจํ ์ ์๋ ๊ฐ์ฅ ์์ ์ง์ฌ๊ฐํ์ด๋ค. ๋์ด๋ 4๊ฐ ๋๋ค.

๊ฑฐ๋ถ์ด๊ฐ ์ง๋๊ฐ ์์ญ์ด ์ง์ฌ๊ฐํ์ ๋ง๋ค์ง ์๋ ๊ฒฝ์ฐ๋ ์๋ค. ์๋ฅผ ๋ค์ด, FFLLFF์ธ ๊ฒฝ์ฐ์ ๊ฑฐ๋ถ์ด๋ y์ถ์ ์๋ก๋ง ์ง๋๋ค๋๋ค. ์ด ๊ฒฝ์ฐ์ ๊ฑฐ๋ถ์ด๊ฐ ์ง๋๊ฐ ์์ญ์ ๋ชจ๋ ํฌํจํ๋ ์ง์ฌ๊ฐํ์ ์ ๋ถ์ด๊ณ , ์ ๋ถ์ ํ ๋ณ์ด 0์ธ ์ง์ฌ๊ฐํ์ผ๋ก ์๊ฐํ ์ ์๋ค. ๋ฐ๋ผ์, ์ ๋ถ์ ๊ฒฝ์ฐ์ ๋์ด๋ 0์ด ๋๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ปจํธ๋กค ํ๋ก๊ทธ๋จ์ด ์ฃผ์ด์ง๋ค. ํ๋ก๊ทธ๋จ์ ํญ์ ๋ฌธ์ ์ ์ค๋ช ์ ๋์์๋ ๋ค๊ฐ์ง ๋ช ๋ น์ผ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๊ณ , ๊ธธ์ด๋ 500์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด์, ๊ฑฐ๋ถ์ด๊ฐ ์ด๋ํ ์์ญ์ ๋ชจ๋ ํฌํจํ๋ ๊ฐ์ฅ ์์ ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ ์ถ๋ ฅํ๋ค.

๋ฌธ์ ํ์ด
import sys
n=int(sys.stdin.readline())
# ๋ถ ๋ ๋จ ์
directions=[(0,1),(1,0),(0,-1),(-1,0)]
dir=0
for i in range(n):
command=list(sys.stdin.readline().strip())
maxx, maxy = 0,0
minx, miny = 0,0
# x,y
cur=[0,0]
for c in command:
if c=='F':
cur[0]+=directions[dir][0]
cur[1]+=directions[dir][1]
minx=min(minx, cur[0])
maxx=max(maxx, cur[0])
miny=min(miny, cur[1])
maxy=max(maxy, cur[1])
elif c=='B':
cur[0] -= directions[dir][0]
cur[1] -= directions[dir][1]
minx = min(minx, cur[0])
maxx = max(maxx, cur[0])
miny = min(miny, cur[1])
maxy = max(maxy, cur[1])
elif c=='R':
dir=(dir+1)%4
elif c=='L':
dir-=1
if dir<0:
dir+=4
print(abs(maxx-minx)*abs(maxy-miny))
์ด๋ ๊ณผ์ ์ค์ ๊ฐ์ฅ ์์ x๊ฐ์ ์ ์ฅํ๋ minx, ๊ฐ์ฅ ์์ y๊ฐ์ ์ ์ฅํ๋ miny, ๊ฐ์ฅ ํฐ x๊ฐ์ ์ ์ฅํ๋ maxx, ๊ฐ์ฅ ํฐ y๊ฐ์ ์ ์ฅํ๋ maxy๋ฅผ updateํ๋ฉด์ ์ต์ข ์ ์ผ๋ก x์ถ์์ ์ด๋ํ ๊ฑฐ๋ฆฌ์ y์ถ์์ ์ด๋ํ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณฑํด์ ์ด๋ํ ์ขํ๋ฅผ ๋ชจ๋ ํฌํจํ๋ ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ ์ถ๋ ฅํ๋ค.
F์ผ ๋ ํ์ฌ ์์น๋ฅผ (x,y) ํํ๋ก ์ ์ฅํ๋ cur ๋ณ์์ ํ์ฌ ๋ฐฉํฅ์ ํด๋นํ๋ directions ๊ฐ์ ๋ํด์ฃผ๊ณ , min, max๊ฐ๋ค์ ์ ๋ฐ์ดํธํด์คฌ๋ค.
B์ผ ๋๋ directions ๊ฐ์ ๋นผ์ฃผ๊ณ min, max ๊ฐ์ ์ ๋ฐ์ดํธํด์คฌ๋ค.
R,L์ ๊ฐ๊ฐ ๋ฐฉํฅ์ ์ค๋ฅธ์ชฝ, ์ผ์ชฝ์ผ๋ก ํ์ด์ฃผ๋ ์ฐ์ฐ์ ํด์ ํ์ฌ ๋ฐฉํฅ์ธ dir์ ์ ๋ฐ์ดํธํ๋ค.
์ด์ค์์ minx, miny, maxx, maxy๋ฅผ ๋ชจ๋ 0์ผ๋ก ์ด๊ธฐํํ๋๋ฐ, ๋ชจ๋ ์ด๋ ๋ฒ์๊ฐ (0,0)์ ํฌํจํ๋ฏ๋ก ์ด๋ ๊ฒ ์ด๊ธฐํํด์ค์ผ ์ฌ๋ฐ๋ฅธ ๊ฐ์ ์ฐพ์ ์ ์๋ค. ๋ง์ฝ, 1e9๋ -1e9์ ๊ฐ์ ๋ณดํต ์ต๋์ต์๋ฅผ ๊ตฌํ ๋ ์ฐ๋ ์ ์ํ ์ต๋๊ฐ์ ์ฌ์ฉํ๋ฉด 0์์ ์ด๋ํ์์๋ ๋ถ๊ตฌํ๊ณ 0์ ํฌํจํ์ง ์๊ณ ๊ณ์ฐํด์ ๋จ์ํ ์ง๋๊ฐ ์ขํ์ ์ต๋์ต์๊ฐ์ ๊ตฌํ๊ฒ ๋๋ฏ๋ก ์ฃผ์ํด์ผ ํ๋ค.
'์๊ณ ๋ฆฌ์ฆ > ๊ตฌํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 7682 ๐ฅ] ํฑํํ (0) | 2023.08.03 |
---|---|
[๋ฐฑ์ค 14719 ๐ฅ] ๋น๋ฌผ (0) | 2023.08.01 |
[๋ฐฑ์ค 18428 ๐ฅ] ๊ฐ์ ํผํ๊ธฐ (0) | 2023.07.06 |
[๋ฐฑ์ค 3190 ๐ฅ] ๋ฑ (0) | 2023.07.06 |
[๋ฐฑ์ค 16967 ๐ฅ] ๋ฐฐ์ด ๋ณต์ํ๊ธฐ (0) | 2023.07.05 |