반응형
Recent Posts
Notice
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 기능개발
- 큐
- 해시
- 백준 2309
- 코딩테스트준비
- 99클럽
- 개발자취업
- BFS
- python 2309
- dfs
- easy 딥러닝
- 99항해
- BOJ
- 백준
- 혁펜하임
- 프로그래머스
- til
- boj 2309
- 파이썬
- 항해99
- Python
- 개발자 취업
- leetcode
- 구현
- 딥러닝
- 코딩테스트 준비
- 활성화 함수
- 알고리즘
- 스택
- softeer
Archives
- Today
- Total
동까의 코딩
[Python] 백준 3190 뱀 본문
반응형
오늘은 구현 문제의 기본인 뱀 문제를 풀어보았습니다.
from collections import deque
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
N = int(input())
K = int(input())
board = [[0] * (N + 1) for i in range(N + 1)]
visited = [[False] * (N + 1) for i in range(N + 1)]
queue = deque()
queue.append((1, 1))
board[1][1] = 1 # 1 = 뱀 / -1 = 사과
visited[1][1] = True
for i in range(K):
a, b = map(int, input().split())
board[a][b] = -1 # 사과 표시
L = int(input())
l = 0 # 방향 전환을 위한 index
change_move = []
for _ in range(L):
a, b = map(str, input().split())
change_move.append((a, b))
cnt = 0
d = 0
while True:
if l < len(change_move):
a, b = change_move[l]
if cnt == int(a):
if b == 'D':
d = (d + 1) % 4
else:
d = (d - 1) % 4
l += 1
x, y = queue[0]
rx, ry = x + dx[d], y + dy[d]
if 0 >= rx or rx >= N + 1 or 0 >= ry or ry >= N + 1:
cnt += 1
break
else:
if board[rx][ry] == -1:
board[rx][ry] = 1
queue.appendleft((rx, ry))
visited[rx][ry] = True
elif visited[rx][ry] == True or board[rx][ry] == 1:
cnt += 1
break
else:
board[rx][ry] = 1
board[rx][ry] = True
queue.appendleft((rx, ry))
a, b = queue.pop()
visited[a][b] = False
board[a][b] = 0
cnt += 1
print(cnt)
queue를 사용하여 뱀을 저장한 후 visited를 만들어주어 뱀이 현재 위치한 공간을 표시하여 겹치면 끝나는 조건을 맞춰주었습니다.
오랜만에 구현 문제를 풀어보니 어려움이 많았으므로 자주 더 많은 문제를 풀어보겠습니다.
반응형
'문제 풀이 > 백준' 카테고리의 다른 글
[Python] 백준 10989 : 수 정렬하기 3 (1) | 2024.04.20 |
---|---|
[Python] 백준 1259 : 팰린드롬수 (0) | 2024.04.11 |
[Python] 백준 10250 : ACM 호텔 (0) | 2024.04.11 |
[Python] 백준 8958 : OX퀴즈 (0) | 2024.04.09 |
[Python] 백준 2309 : 일곱 난쟁이 (0) | 2024.04.09 |