上下左右


1.質問



2.解答


(1)解釈


私が知っているx座標やy座標ではないので、うろうろし始めたばかりです.
n = int(input())
array = list(input().split())
x, y = 1, 1
for i in range(len(array)):
    if array[i] == 'R' and y < 5:
        y += 1
    if array[i] == 'L' and y > 1:
        y -= 1
    if array[i] == 'U' and x > 1:
        x -= 1
    if array[i] == 'D' and x < 5:
        x += 1
print(x, y)
このように解にも答えがありますが、解はもっと系統的なようなので、解を見て勉強したいです.

(2)答え

n = int(input())
x, y = 1, 1
plans = input().split() # plans는 리스트이다.

# L, R, U, D에 따른 이동 방향
dx = [0, 0, -1, 1]
dy = [-1, 1, 0, 0]
# 1, -1은 한 칸씩 옮기는 것을 의미한다.(방향을 다르게)
move_types = ['L', 'R', 'U', 'D']

# 이동 계획을 하나씩 확인
# 굳이 for plan in len(plan)라고 쓰고 인덱쓰로 접근할 필요가 없었다.
for plan in plans:
    # 이동 후 좌표 구하기
    for i in range(len(move_types)):
    # 이중 for문을 돌면서 어떤 이동 방향을 가졌는지 구한다.
        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)