๐ฅ Silver3
https://www.acmicpc.net/problem/8911
โ ์ ๋ตํ์ด
import sys
input = sys.stdin.readline
n = int(input())
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
for _ in range(n):
commands = input().strip()
direction = 0 # ์ด๊ธฐ๋ฐฉํฅ=๋ถ์ชฝ (0: ๋ถ, 1: ๋, 2: ๋จ, 3: ์)
x, y = 0, 0 # ์ด๊ธฐ์์น
min_x, min_y = 0, 0
max_x, max_y = 0, 0
for command in commands:
if command == 'F':
x += dx[direction] # ํ์ฌ ๋ฐฉํฅ์์ dx,dy๋งํผ ์ด๋
y += dy[direction]
elif command == 'B':
x -= dx[direction]
y -= dy[direction] # ํ์ฌ ๋ฐฉํฅ์ ๋ฐ๋๋ก dx,dy๋งํผ ์ด๋
elif command == 'L':
direction = (direction - 1) % 4 # ๋ฐฉํฅ ์
๋ฐ์ดํธ
elif command == 'R':
direction = (direction + 1) % 4
# ์ขํ ์ด๋ ํ ์ต์,์ต๋๊ฐ ์
๋ฐ์ดํธ
min_x = min(min_x, x)
min_y = min(min_y, y)
max_x = max(max_x, x)
max_y = max(max_y, y)
# ์ง์ฌ๊ฐํ ๋์ด ๊ณ์ฐ
result = (max_x - min_x) * (max_y - min_y)
print(result)
๋ฐฉํฅ ๋๋ฌธ์ ์ด๋ ค์์ ๊ฒช์๋ ๋ฌธ์ ์๋ค ๐ข
๋ถ,์,๋จ,๋ถ ๋ฐฉํฅ์ ์ซ์๊ฐ์ผ๋ก ๊ด๋ฆฌํ๋ฉด์, ์ด์ ํด๋นํ๋ ๊ฐ์ ์ด๋ dx,dy์ ์ธ๋ฑ์ค๋ก ์ฌ์ฉํ๋ค.
F,B์ ์ด๋ ๋ช ๋ น์ direction์ ๋ฐฉํฅ์ ํ ๋๋ก ์ด๋๊ฐ์ dx,dy๊ฐ์ ์ฌ์ฉํด ์ด๋์์ผ์ฃผ๊ณ ,
L,R์ ๋ฐฉํฅ ์ ํ ๋ช ๋ น์ ๋ค์๊ณผ ๊ฐ์ ๊ณต์์ ๋ง๋ค ์ ์๋ค.
โ๏ธํ์ด์ฌ์ ๋ชจ๋๋ฌ ์ฐ์ฐ์(%)๋ ์์๋ฅผ ์์์ ์์์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด ์์๋ฅผ ์ฒ๋ฆฌ ํ๋ค๊ณ ํ๋ค.
print(-1%3) #2
print(-2%5) #3
-1+3=2
-2+5=3
๋ช ๋ น์ ๋ฐ๋ผ ์ด๋ํ๋ฉด์, ์ต์ ์ต๋์ x,y ์ขํ๋ฅผ ์ ๋ฐ์ดํธ ํด์ค๋ค ์ต์ข ์ ์ผ๋ก ๋์ด๋ฅผ ๊ตฌํ๋ค.
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-Python] ํดํน : 10282๋ฒ (1) | 2024.06.14 |
---|---|
[๋ฐฑ์ค-Python] ์ต๋จ๊ฒฝ๋ก : 1753๋ฒ (๋ค์ต์คํธ๋ผ ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ) (1) | 2024.06.14 |
[๋ฐฑ์ค-Python] ์๊ธฐ์์ด2 : 17086๋ฒ (0) | 2024.06.13 |
[๋ฐฑ์ค-Python] ํน : 1063๋ฒ (1) | 2024.06.12 |
[๋ฐฑ์ค-Python] ๋จ์ด ๋๋๊ธฐ : 1251๋ฒ (0) | 2024.06.12 |