λ°μν
π€λ¬Έμ ν΄κ²°
- ꡬν
- μ’νλ₯Ό λ¨Όμ ꡬνμ.
- (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 |