Jae-Kyung Cho LLM Developers who was a Robotics engineer

Baekjoon-8911-거북이

import sys
input = sys.stdin.readline

T = int(input())

def move(x,y,dir_x,dir_y, comm):
    if comm=='F':
        return x+dir_x,y+dir_y,dir_x,dir_y
    if comm=="B":
        return x-dir_x,y-dir_y,dir_x,dir_y
    if comm=='L':
        new_dir_x = 0 if dir_x!=0 else dir_y
        new_dir_y = 0 if dir_y!=0 else -dir_x
        return x,y,new_dir_x, new_dir_y
    if comm=='R':
        new_dir_x = 0 if dir_x!=0 else -dir_y
        new_dir_y = 0 if dir_y!=0 else dir_x
        return x,y,new_dir_x, new_dir_y

result=[]
for _ in range(T):
    seq = input().strip()
    min_xy = [0,0]
    max_xy = [0,0]
    cur = [0,0,0,1]
    for c in seq:
        cur = move(*cur,c)
        min_xy = [min(min_xy[0],cur[0]), min(min_xy[1],cur[1])]
        max_xy = [max(max_xy[0],cur[0]), max(max_xy[1],cur[1])]
    result.append((max_xy[0]-min_xy[0])*(max_xy[1]-min_xy[1]))

print(*result,sep='\n')
Comments