๊ตฌํ์ด๋?
์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค ๋, ๋จธ๋ฆฟ์์ ์๋ ์ ์ฐจ๋ฅผ ์์ค์ฝ๋๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค. ๊ตฌํ ์ ํ์ ๋ฌธ์ ๋ ๋ณดํต ํ์ด๋ฅผ ๋ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ฝ์ง๋ง, ๊ทธ๊ฑธ ์ค์ ์ฝ๋๋ก ๋ฐ๊พธ๊ธฐ์ ์ด๋ ค์ด ๋ฌธ์ ๋ค์ ๋ง์ด ์ถ์ ํ๋ค.
์ฃผ๋ก ๋ง์ด ์ฌ์ฉํ๋ ๊ตฌํ ๋ฌธ์ ๋ค์ ์์ ํ์ (๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ํ์ํ๋ค) ์ด๊ฑฐ๋ ์๋ฎฌ๋ ์ด์ (๋ฌธ์ ์์ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋จ๊ณ์ฉ ์ฐจ๋ก๋ก ์ํํ๊ฒ ๋ง๋ฆ) ์ ์๋ฏธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
๊ตฌํ ์์
N*N ๊ฒฉ์ ํ์์ ๊ฒฉ์๊ฐ ์๋ค๊ณ ๊ฐ์ ํ์. L, R, U, D๋ ๊ฐ๊ฐ ์ผ์ชฝ, ์ค๋ฅธ์ชฝ, ์, ์๋๋ก ์ด๋ํ๋ผ๋ ๋ช ๋ น์ด ๋ด๊ธด ๋ช ๋ น์ด๋ค์ด๋ค. ๊ทธ๋ผ ๋ช ๋ น์ด๊ฐ ์ฃผ์ด์ก๊ณ , ์ถ๋ฐ์ ์ (1,1)์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด, ๋ช ๋ น ์ํ ํ ๋์ ์์น๋ ์ด๋์ธ์ง ์ด๋ป๊ฒ ์ ์ ์์๊น?
n = int(input())
steps = input().split()
x, y = 1, 1
for step in steps:
if step == "R":
if y + 1 <= n:
y += 1
elif step == "U":
if x - 1 > 0:
x -= 1
elif step == "L":
if y - 1 > 0:
y -= 1
else: # D
if x + 1 <= n:
x += 1
print(x, y)
์ด๊ฑธ ์กฐ๊ธ ๋ ํ์ ์ฑ ์๊ฒ ๊ตฌํํ ์์๋ ๋ค์๊ณผ ๊ฐ๋ค
n = int(input())
x, y = 1, 1
plans = input().split()
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
move_types = ['L', 'R', 'U', 'D']
for plan in plans:
for i in range(len(move_types)):
if plan == move_types[i]:
nx = x + dx[i]
ny = y + dy[i]
if nx < 1 or ny < 1 or nx > n or ny > n:
continue
x, y = nx, ny
print(x, y)
์ด๋ ๊ตฌํ ์ค ์๋ฎฌ๋ ์ด์ ์ ํ์ ๋ฌธ์ ๊ฐ ์ด๋ป๊ฒ ์ฃผ์ด์ง๋ ์ง ๋ณด์ฌ์ค๋ค.