題解
開一個dictionary,紀錄從哪個方位到哪個方位是怎樣的轉彎,就差不多結束了。
Python 解答
transform = {
('N', 'W'):0, ('E', 'N'):0, ('S', 'E'):0, ('W', 'S'):0,
('N', 'E'):1, ('E', 'S'):1, ('S', 'W'):1, ('W', 'N'):1,
('N', 'S'):2, ('E', 'W'):2, ('S', 'N'):2, ('W', 'E'):2,
('N', 'N'):3, ('E', 'E'):3, ('S', 'S'):3, ('W', 'W'):3
} #0, 1, 2, 3是左轉, 右轉, 迴轉, 沒轉彎
n = int(input())
points = [tuple(map(int, input().split())) for _ in range(n)]
res = [0, 0, 0, 0] #left, right, uturn, noturn
currx = 0
curry = 0
currdir = 'E'
for nxtx, nxty in points:
if nxtx>currx: newdir = 'E'
elif nxtx<currx: newdir = 'W'
elif nxty>curry: newdir = 'N'
else: newdir = 'S'
res[transform[(currdir, newdir)]] +=1
currx, curry = nxtx, nxty
currdir = newdir
print(*res[:3:]) #不能把noturn次數打出來