TIL 쓰는 건 의외로 유쾌한 일이다
글 쓰는게 생각보다 적성에 맞는게 아닐까란 생각이 들 정도로
그치만 녹록치 않은 시간 탓에 쉽지 않다
그도 그럴 것이 피곤한 몸을 뉘거나 간단히 여가 시간 보내기
vs
하루 공부한 거 정리해서 글쓰기일때
후자 고르는 놈은 상당히 가식적이거나 머리 어딘가 성치 않을 게 분명하다
후자 고르고 전자처럼 행동하거나
그런면에서 TIL 꾸준히 쓰기란 어렵다
그래도 할건 해야지
오늘의 TIL : 암흑 군주 이민혁
암흑군주 이민혁의 공격으로부터
고슴도치가 죽을 지 살지 예측하는 문제다
자세한건 링크로
🔽🔽🔽🔽🔽🔽
🔼🔼🔼🔼🔼🔼
import sys
from collections import deque
input = sys.stdin.readline
# R행 C열
R, C = map(int, input().split())
# 숲 전체 기록
forest = [list(input().strip()) for _ in range(R)]
# 무빙 방향 정해주기
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
# 고슴도치와 물 위치 기록용
run = deque()
flood = deque()
# 고슴도치 왔던 길 중복 체크
visited = [[False]*C for _ in range(R)]
# BFS 시작
for y in range(R):
# 물과 고슴 시작 위치
for x in range(C):
if forest[y][x] == 'S':
run.append((y, x, 0))
elif forest[y][x] == '*':
flood.append((y, x))
# 고슴도치 도망 성공하거나 실패할때까지
while run:
# 물 먼저 이동 시작
for _ in range(len(flood)):
# 위치
f_y, f_x = flood.popleft()
for f_dir in range(4):
nf_x = f_x + dx[f_dir]
nf_y = f_y + dy[f_dir]
# 범위 체크
if 0 <= nf_x < C and 0 <= nf_y < R:
# 이동 가능 체크
if forest[nf_y][nf_x] == '.':
# 물로 바꾸기
flood.append((nf_y, nf_x))
forest[nf_y][nf_x] = '*'
# 고슴 이동 시작
for _ in range(len(run)):
# 위치와 시간
h_y, h_x, t = run.popleft()
for h_dir in range(4):
nh_y = h_y + dy[h_dir]
nh_x = h_x + dx[h_dir]
# 범위 체크
if 0 <= nh_x < C and 0 <= nh_y < R:
# 이동 가능 및 중복 체크
if forest[nh_y][nh_x] == '.'and not visited[nh_y][nh_x]:
# 고슴도치 이동 및 시간 기록
visited[nh_y][nh_x] = True
run.append((nh_y, nh_x, t+1))
# 고슴도치 탈출 및 시간 출력
elif forest[nh_y][nh_x] == 'D':
print(t + 1)
exit()
# 고슴도치 선인장 행
print('KAKTUS')
꽤 길다 주석 달았으니 알아서 봐라
앞으론 이런식으로 TIL날먹 할 수도 있을 거 같다
에지간해선 지금보다 신경 쓰겠다만
문제가 많아 바쁠 경우 지금처럼 푼문제 간단 요약하겠다
아니면 좀 더 길게 요약하거나