백준 문제풀이
백준 8911 - 거북이 [Python]
Vermeil
2021. 3. 29. 08:39
8911번: 거북이
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 컨트롤 프로그램이 주어진다. 프로그램은 항상 문제의 설명에 나와있는 네가지 명령으로만 이루어져
www.acmicpc.net
단순 구현문제다.
거북이가 간 점들의 최대, 최소가 되는 x좌표와 y좌표로 직사각형의 넓이를 구할 수 있다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
import sys
input = sys.stdin.readline
t = int(input())
def fr():
k[0] = min(now[0], k[0])
k[1] = min(now[1], k[1])
k[2] = max(now[0], k[2])
k[3] = max(now[1], k[3])
def go(m):
for i in range(2):
now[i] += p[m][i]
fr()
while t:
t -= 1
k = [0,0,0,0] #minX, minY, maxX, maxY
s = list(input())
now = [0,0]
d = 0
p = [[0,1], [1,0], [0,-1], [-1,0]]
for i in s:
if i == "F":
go(d)
if i == "B":
go((d+2)%4)
if i == "L":
d -= 1
d %= 4
if i == "R":
d += 1
d %= 4
# print(k)
print((k[2]-k[0])*(k[3]-k[1]))
|
cs |