from copy import deepcopy
#방향에 따른 좌표값 계산하는 함수
def loc(xx, yy, dir):
if dir == 0: return xx, yy+1
elif dir == 1: return xx-1, yy
elif dir == 2: return xx, yy-1
elif dir == 3: return xx+1, yy
#중복을 없애는 set에 뱡향값들을 좌표로 바꿔 넣는 함수
def dir_cal(lst, x, y):
for i in lst:
x, y = loc(x, y, i)
loc_set.add((x, y))
#방향값의 규칙대로 리스트에 집어넣는 함수
def sol(x, y, d, g):
temp_num, num_lst = 0, [d]
for _ in range(g):
temp_lst = deepcopy(num_lst)
while temp_lst:
temp_num = temp_lst.pop()
num_lst.append((temp_num+1)%4)
dir_cal(num_lst, x, y)
N = int(input())
loc_set = set()
for _ in range(N):
y, x, d, g = map(int, input().split(' '))
loc_set.add((x, y))
sol(x, y, d, g)
dx, dy = [1, 0, 1], [0, 1, 1]
result = 0
#오른쪽, 아래, 대각선 좌표를 검사하고 set집합에 셋다 있으면 +1해준다
for lx, ly in loc_set:
for i in range(3):
if (lx+dx[i], ly+dy[i]) not in loc_set:
break
else:
result += 1
print(result)
'알고리즘 > 백준 (Pyhthon)' 카테고리의 다른 글
[알고리즘] 백준 2206 벽 부수고 이동하기 / 파이썬 (0) | 2020.09.21 |
---|---|
[알고리즘] 백준 11779 최소비용 / 파이썬 (0) | 2020.09.21 |
[알고리즘] 백준 16197 두 동전 / 파이썬 (0) | 2020.09.17 |
[알고리즘] 백준 15653 구슬 탈출 4 / 파이썬 (0) | 2020.09.17 |
[알고리즘] 백준 16918 봄버맨 / 파이썬 (0) | 2020.09.15 |