Notice
Recent Posts
Recent Comments
12-12 11:30
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스 조건에 맞는 개발자 찾기
- sql
- SAA-C02
- 백준 크리문자열
- ROWNUM
- 리스트 컴프리헨션
- 백준 11059
- 백준 24499 파이썬
- 데이터베이스
- 백준 1756
- 파이썬
- SQLD
- 정규화
- AWS
- github
- 깃허브
- join
- react
- 백준 2852
- 알고리즘
Archives
- Today
- Total
-
[백준] 3190 - 뱀 본문
반응형
from collections import deque
n = int(input())
game = [[0]*n for _ in range(n)]
k = int(input())
for i in range(k):
x, y = map(int, input().split())
game[x-1][y-1] = 2
l = int(input())
queue = deque()
dirDict = dict()
queue.append((0, 0))
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
for _ in range(l):
x, c = input().split()
dirDict[int(x)] = c
x, y = 0, 0
game[x][y] = 1
cnt = 0
direction = 0
def turn(alpha):
global direction
if alpha == 'L':
direction = (direction - 1)%4
elif alpha == 'D':
direction = (direction + 1)%4
while True:
cnt += 1
x += dx[direction]
y += dy[direction]
if x < 0 or x >= n or y < 0 or y >= n:
break
if game[x][y] == 2: #사과일때
game[x][y] == 1
queue.append((x, y))
if cnt in dirDict:
turn(dirDict[cnt])
elif game[x][y] == 0:
game[x][y] = 1
queue.append((x, y))
tx, ty = queue.popleft()
game[tx][ty] = 0
if cnt in dirDict:
turn(dirDict[cnt])
else:
break
print(cnt)
반응형
'Algorithm' 카테고리의 다른 글
[백준 2638] 치즈 - 파이썬 (0) | 2024.02.15 |
---|---|
[백준 1051] 숫자 정사각형 - 파이썬 (0) | 2024.01.20 |
[백준 1347] 미로 만들기 파이썬 (0) | 2023.10.09 |
에라토스테네스의 체 (소수 구하기 알고리즘) (0) | 2023.04.29 |
[백준 1929] 소수 구하기 - 파이썬 (0) | 2023.04.29 |
Comments