๋ฐ์ํ

๐ค๋ฌธ์ ํด๊ฒฐ
- ๊ตฌํ
- ์ขํ๋ฅผ ๋จผ์ ๊ตฌํ์.
- (0, 0) ์์ ์์ํด์ ์ ์๋ ํ๋๋๋ก ์ขํ๋ก ๋ด์์ค๋ค.
- x์ขํ, y์ขํ ๊ฐ๊ฐ์ ์ต์์ ์ต๋๋ฅผ ๊ตฌํ๋ค.
- ๋ชจ๋ ์ขํ๋ค์ ๋ํด์ ์ต์๊ฐ์ ๋ํด์ค๋ค. ( ์์๊ฐ ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ ์์๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ ์ํด์ )
- ์ต๋ ์ต์๋ก 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค๊ณ , ๊ตฌํ ์ขํ๋ก ๊ธธ์ ๋ง๋ค์ด์ค๋ค.
๐ป์์ค ์ฝ๋
import sys
input = sys.stdin.readline
N = int(input())
action = input().strip()
# 0,0 ๋ถํฐ ์ขํ ๊ตฌํ๊ธฐ
loc_list = [(0, 0)]
dx, dy = [-1, 0, 1, 0], [0, 1, 0, -1] # ์ ์ฐ ํ ์ข/ ๋ถ ๋ ๋จ ์
status = 2
for a in action:
if a == 'R':
# ์ค๋ฅธ์ชฝ
status = (status + 1) % 4
elif a == 'L':
# ์ผ์ชฝ
status = (status - 1) if status != 0 else 3
else:
x = loc_list[-1][0] + dx[status]
y = loc_list[-1][1] + dy[status]
loc_list.append((x, y))
# x, y ์ ์ต๋ ์ต์ ๊ตฌํ๊ธฐ
x_sort = sorted(loc_list, key=lambda x: x[0])
y_sort = sorted(loc_list, key=lambda x: x[1])
x_min, x_max = x_sort[0][0], x_sort[-1][0]
y_min, y_max = y_sort[0][1], y_sort[-1][1]
# 2์ฐจ์ ๋ฐฐ์ด ๋ง๋ค๊ธฐ
maze = [['#' for y in range(y_min, y_max + 1)] for x in range(x_min, x_max + 1)]
# ์์๊ฐ ๋์ฌ ์ ์์ผ๋ฏ๋ก ์ต์๊ฐ๋งํผ ๋ํด์ฃผ๊ธฐ ( ์์๋ก ๋ฐ๊พธ๊ธฐ )
for i in range(len(loc_list)):
loc_list[i] = (loc_list[i][0] - x_min, loc_list[i][1] - y_min)
# ์ขํ๋ก ๊ธธ ๋ง๋ค๊ธฐ
for i, j in loc_list:
maze[i][j] = '.'
# ๋ต
for row in maze:
print(''.join(row))
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: BACKJOON ONLINE JUDGE
๋ฐ์ํ
'Algorithm Problem > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[python] ๋ฐฑ์ค - 2485. ๊ฐ๋ก์ (0) | 2021.09.16 |
---|---|
[python] ๋ฐฑ์ค - 21608. ์์ด ์ด๋ฑํ๊ต (0) | 2021.09.15 |
[python] ๋ฐฑ์ค - 12764. ์ธ์ง๋ฐฉ์ ๊ฐ ์คํ (0) | 2021.09.11 |
[python] ๋ฐฑ์ค - 11085. ๊ตฐ์ฌ ์ด๋ (0) | 2021.09.10 |
[python] ๋ฐฑ์ค - 19598. ์ต์ ํ์์ค ๊ฐ์ (0) | 2021.09.09 |