[Python] BOJ 1347번. 미로 만들기

1347번. 미로 만들기

문제 링크

풀이 코드

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
32
33
34
35
36
37
38
39
40
41
42
# 1347번. 미로 만들기


l = int(input())
maze = [['#' for i in range(200)] for i in range(200)]
step = list(input())
cury = 100
curx = 100
maze[cury][curx] = '.'
# y,x 임에 유의
direction = ['S', 'W', 'N', 'E']*50
dirIdx = 0
for i in range(l):
    if step[i] == 'R':
        dirIdx += 1
    elif step[i] == 'L':
        dirIdx -= 1
    else:  # 'F'
        if direction[dirIdx] == 'S':
            cury += 1
            maze[cury][curx] = '.'
        elif direction[dirIdx] == 'E':
            curx += 1
            maze[cury][curx] = '.'
        elif direction[dirIdx] == 'N':
            cury -= 1
            maze[cury][curx] = '.'
        else:  # 'W'
            curx -= 1
            maze[cury][curx] = '.'

yList = []
xList = []
for y in range(200):
    for x in range(200):
        if maze[y][x] == '.':
            yList.append(y)
            xList.append(x)
for y in range(min(yList), max(yList)+1):
    for x in range(min(xList), max(xList)+1):
        print(maze[y][x], end='')
    print()

비고