Notice
Recent Posts
Recent Comments
tony9402
[백준 1347] 미로 만들기 본문
반응형
이 문제는 주어진 문자열 순으로 구현을 하면 되는 문제이다.
주어지는 문자열의 최대 길이는 50으로 101x101 크기의 배열을 만들어 (50, 50)에서 출발하여 주어진 문자열 대로 이동하고 방문한 점을 .으로 방문하지 않은 점을 #으로 출력하면 된다.
미로를 출력하는 범위는 .을 포함하는 가장 작은 직사각형의 크기 및 위치를 관리하면 된다.
import sys
def input():
return sys.stdin.readline().rstrip()
N = int(input())
S = input()
# If +1 : Turn Right, -1 : Turn Left
Dy = (-1,0,1,0)
Dx = (0,1,0,-1)
V = [['#' for j in range(101)] for i in range(101)]
y, x, D = 50, 50, 2
ey = ex = sy = sx = 50
V[y][x] = '.'
for ch in S:
if ch == 'L': D = (D + 3) % 4
elif ch == 'R': D = (D + 1) % 4
else:
y, x = y + Dy[D], x + Dx[D]
V[y][x] = '.'
sy, ey, sx, ex = min(sy, y), max(ey, y), min(sx, x), max(ex, x)
for i in range(sy, ey+1): print(''.join(V[i][sx:ex+1]))
반응형
'알고리즘 > Baekjoon Online Judge' 카테고리의 다른 글
[백준 3078] 좋은 친구 (0) | 2022.06.11 |
---|---|
[백준 4991] 로봇 청소기 (0) | 2022.06.11 |
[백준 2151] 거울 설치 (0) | 2022.06.10 |
[백준 22949] 회전 미로 탐색 (0) | 2022.06.09 |
[백준 5545] 최고의 피자 (0) | 2022.06.07 |
Comments