์•Œ๊ณ ๋ฆฌ์ฆ˜/๊ตฌํ˜„

[๋ฐฑ์ค€ 8911 ๐Ÿฅˆ] ๊ฑฐ๋ถ์ด

1eehyunji 2023. 7. 31. 23:35

๋ฌธ์ œ

์ƒ๊ทผ์ด๋Š” 2์ฐจ์› ํ‰๋ฉด ์œ„์—์„œ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๋ถ์ด ๋กœ๋ด‡์„ ํ•˜๋‚˜ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๊ฑฐ๋ถ์ด ๋กœ๋ด‡์—๊ฒŒ ๋‚ด๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋„ค๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. F: ํ•œ ๋ˆˆ๊ธˆ ์•ž์œผ๋กœ
  2. B: ํ•œ ๋ˆˆ๊ธˆ ๋’ค๋กœ
  3. L: ์™ผ์ชฝ์œผ๋กœ 90๋„ ํšŒ์ „
  4. 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์„ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ๊ณ„์‚ฐํ•ด์„œ ๋‹จ์ˆœํžˆ ์ง€๋‚˜๊ฐ„ ์ขŒํ‘œ์˜ ์ตœ๋Œ€์ตœ์†Œ๊ฐ’์„ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.