1. 문제
2. 접근 방법
아 진짜 세대 이용해서 푸는게 진짜 진자 지ㄴ짜로 어려웠다
흑흑흑흑
너무 많은 시간을 지체해서 결국 이 블로그들을 참고했다.
아니 근데 이분 왤케 잘 푸시죠 ^-^
완전 파이썬 너낌 나게 잘 푸셨슴다.
그리고 세대가 10까지인 것에 착안하여 미리 10세대까지 v행렬에 만들어놓고 그거 꺼내다가 쓰는ㄴ게 진짜 미쳤슴다;;;
이 분의 문제 풀이에서 방향 전환의 규칙성을 이해할 수 있었다 8ㅅ8 ...
3. 코드
python
N = int(input())
# 영역 확인 해주기 귀찮으니까 101로 함
board = [[0]*101 for _ in range(101)]
dx, dy = (1, 0, -1, 0), (0, -1, 0, 1)
v = [0]
ans = 0
for i in range(1, 11):
k = 1<<(i-1)
for j in range(k):
v.append((v[k-j-1]+1)%4)
for _ in range(N):
x, y, d, g = map(int, input().split())
board[y][x] = 1
for i in range(1<<g):
x, y = x+dx[(v[i]+d)%4], y+dy[(v[i]+d)%4]
board[y][x] = 1
for y in range(100):
for x in range(100):
if board[y][x] and board[y+1][x] and board[y][x+1] and board[y+1][x+1]:
ans += 1
print(ans)
4. 마치며
아직 온전히 내 것으로 만들었다고는 보기 힘들지만 !
그래도 흐름을 잡았으니 다시 풀 때는 꼭 내 손으로 풀기 !@!@!@
'Algorithm > Python' 카테고리의 다른 글
[백준 5373] 큐빙 (0) | 2021.04.19 |
---|---|
[백준 15683] 감시 (0) | 2021.04.18 |
[백준 14891] 톱니바퀴 (0) | 2021.04.18 |
[백준 14889] 스타트와 링크 (0) | 2021.04.18 |
[백준 14888] 연산자 끼워넣기 (0) | 2021.04.18 |