티스토리 뷰
[Silver I] 봄버맨 - 16918
성능 요약
메모리: 245288 KB, 시간: 2224 ms
분류
그래프 이론(graphs), 그래프 탐색(graph_traversal), 구현(implementation), 시뮬레이션(simulation)
from collections import deque
dx, dy = [-1, 1, 0, 0, 0], [0, 0, -1, 1, 0]
q = deque()
def time_set(time):
global visited, graph
for index, line in enumerate(graph):
for index2, line_o in enumerate(line):
if line_o == 'O' and visited[index][index2] == -10:
# 초기에 설치된 폭탄
visited[index][index2] = time
def fill_graph(time):
global visited, graph
for index, line in enumerate(graph):
for index2, line_o in enumerate(line):
if line_o == '.' and visited[index][index2] == -10:
# 폭탄 새로 세팅
visited[index][index2] = time
graph[index][index2] = 'O'
def boom(time):
boom_lst = []
for i in range(r):
for j in range(c):
# 폭탄이 존재.. 하고 시간이 설치 시간 + 3 과 동일하다면
if graph[i][j] == 'O' and time == visited[i][j] + 3:
# 현재 위치기준으로 좌우상하 탐색
for k in range(5):
nx, ny = i + dx[k], j + dy[k]
if 0 <= i + dx[k] < r and 0 <= j + dy[k] < c:
boom_lst.append([nx, ny])
for x, y in boom_lst:
graph[x][y], visited[x][y] = '.', -10
# r : 가로 줄 , c : 세로 줄 , n : n 초 후 격자판의 상태 출력
r, c, n = map(int, input().split())
graph = [list(map(str, input())) for _ in range(r)]
visited = [[-10] * c for _ in range(r)]
for i in range(n + 1):
if i == 0:
# 초기 폭탄 카운트 세팅
time_set(0)
elif i == 1:
pass
elif i % 2 == 0:
# 폭탄 새로 채우기
fill_graph(i)
# 타이머 설정
time_set(i)
elif i % 2 != 0:
# 폭탄을 터뜨립니다.
boom(i)
for index, line in enumerate(graph):
for index2, line_o in enumerate(line):
print(line_o, end='')
print()
'코딩테스트 > 백준' 카테고리의 다른 글
파이썬 | 5014 _ 스타트링크 _ G5 (0) | 2022.07.08 |
---|---|
파이썬 | 2589_보물섬_G5 (0) | 2022.07.07 |
파이썬 | 16948 . 데스 나이트 _S1 (0) | 2022.06.25 |
파이썬 | 12671. 돌다리 _ S1 (0) | 2022.06.23 |
파이썬 | 2583 영역 구하기 S1 (0) | 2022.06.19 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- java
- K번째수
- 카카오 코딩테스트
- solved.ac
- 인형뽑기
- 자료표현
- 2진수
- 알고리즘
- 프로그래머스 # 음양더하기
- stack
- 10진수
- 코딩테스트
- 1063
- 킹
- 백준
- 구현
- 프로그래머스
- Git
- 자료구조
- 크레인 인형뽑기 게임
- 오
- ASCII코드
- 2019 카카오 개발자 겨울 인턴십
- 브루트포스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함