
def solution(points, routes):
answer = 0
paths = [[points[j - 1][:] for j in route] for route in routes]
grid = [[0] * 101 for _ in range(101)]
for path in paths: # ์ถ๋ฐ ์ง์ ์์์ ์ถฉ๋ ํ์ธ
x, y = path[0]
if grid[x][y] == 1:
grid[x][y] += 1
answer += 1
elif grid[x][y] == 0:
grid[x][y] = 1
while True:
active_paths = len(paths) # ํ์ฑํ๋ ๊ฒฝ๋ก์ ์ (0์ด๋ฉด ์ข
๋ฃ)
grid = [[0] * 101 for _ in range(101)] # ๊ทธ๋ฆฌ๋ ์ด๊ธฐํ
for path in paths:
if path[0] == [0, 0]: # ์ต์ข
๋์ฐฉ์ง์ ๋์ฐฉํ ๋ก๋ด
active_paths -= 1
continue
x1, y1 = path[0]
x2, y2 = path[1]
if x1 < x2: # ๊ฒฝ๋ก ์ด๋ (x์ถ ์ฐ์ )
path[0][0] += 1
elif x1 > x2:
path[0][0] -= 1
elif y1 < y2:
path[0][1] += 1
elif y1 > y2:
path[0][1] -= 1
x, y = path[0] # ์ถฉ๋ ํ์ธ
if grid[x][y] == 1:
grid[x][y] += 1
answer += 1
elif grid[x][y] == 0:
grid[x][y] = 1
if path[0] == path[1]: # ๋์ฐฉ์ง์ ๋์ฐฉํ ๊ฒฝ์ฐ
if len(path) > 2: # ์ถ๊ฐ ๊ฒฝ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ
del path[1]
else: # ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์ด๋ํ ๊ฒฝ์ฐ
path[0] = [0, 0]
active_paths -= 1
if active_paths == 0:
break
return answer