[백준] 15685번 드래곤커브 (python, 시뮬레이션)
728x90
반응형
from collections import deque
from collections import defaultdict
dict=defaultdict(int)
n=int(input())
dy,dx=[0,-1,0,1],[1,0,-1,0] # 북서남동 0 1 2 3 => 서남동북 1 2 3 0
def dragon(x,y,d,g):
direct=[d]
dict[(x, y)] = 1 # 시작점 저장
x+=dx[d] # 현재 방향에서 이동 (0세대)
y+=dy[d]
dict[(x, y)] = 1 # 0세대 이동 저장
for _ in range(g):
temp=[]
for i in range(len(direct)-1,-1,-1):
next=(direct[i]+1)%4
x+=dx[next]
y+=dy[next]
dict[(x,y)]=1
temp.append(next)
direct.extend(temp)
for _ in range(n):
x,y,d,g=map(int,input().split())
dragon(x,y,d,g)
answer=0
for x,y in list(dict.keys()):
if dict[x+1,y] and dict[x,y+1] and dict[x+1,y+1]:
answer+=1
print(answer)
풀이 참고
728x90
반응형
'백준' 카테고리의 다른 글
[백준 12738번] 가장 긴 증가하는 부분 수열 3 (python, bisect) (0) | 2020.11.23 |
---|---|
[11053번] 가장 긴 증가하는 부분 수열 (python, bisect) (0) | 2020.11.23 |
[백준] 14889번 스타트와 링크 (파이썬, 완전탐색) (0) | 2020.10.17 |
[백준] 14505번 연구소 (bfs, 시뮬레이션, 파이썬) (0) | 2020.10.17 |
[백준] 15686번 치킨배달 (시뮬, bfs, 파이썬, java) (0) | 2020.10.17 |
TAGS.