728x90
SMALL
문제
https://www.acmicpc.net/problem/14891
⚙️풀이
주어진대로 구현하면 되는 문제였다.
주위의 톱니바퀴를 움직이는데 재귀를 활용했다.
톱니바퀴를 돌리는데에는 deque를 활용했다.
import sys
from collections import deque
sys.setrecursionlimit(1000000000)
def rotation(num,d):
#print(num,visited,d)
visited.add(num)
if num-1>=0 and num-1 not in visited: #왼쪽 옆 톱니바퀴 확인
if Gear[num-1][2]!=Gear[num][6]:
rotation(num-1,d*-1)
if num+1<4 and num+1 not in visited: #오른쪽 옆 톱니바퀴 확인
if Gear[num+1][6]!=Gear[num][2]:
rotation(num + 1, d * -1)
if d==1: #시계방향으로 돌리기
n=Gear[num].pop()
Gear[num].appendleft(n)
else: #반시계 방향으로 돌리기
n=Gear[num].popleft()
Gear[num].append(n)
Gear=[] #톱니바퀴 리스트
for i in range(4):
Gear.append(deque(map(int,sys.stdin.readline().strip()))) # 바퀴의 N,S는 deque에 들어간다
K=int(sys.stdin.readline())
for _ in range(K):
visited=set()
num,direction=map(int,sys.stdin.readline().split())
rotation(num-1,direction)
#점수 계산
result=0
if Gear[0][0]==1:
result+=1
if Gear[1][0]==1:
result+=2
if Gear[2][0]==1:
result+=4
if Gear[3][0]==1:
result+=8
print(result)
728x90
LIST
'코테공부 > python 백준' 카테고리의 다른 글
파이썬 백준 17825번 : 주사위 윷놀이 (0) | 2024.08.14 |
---|---|
파이썬 백준 15686번 : 치킨 배달 (0) | 2024.06.04 |
파이썬 백준 22856번 : 트리 순회 (0) | 2024.06.04 |
파이썬 백준 1707번 : 이분 그래프 (0) | 2024.05.30 |
파이썬 백준 14499번 : 주사위 굴리기 (0) | 2024.05.29 |