티스토리 뷰

1️⃣ 기본적인 방향 설정

우리가 보통 사용하는 2D 좌표계에서의 방향 이동에 대해 알아보자
2차원 리스트(행렬)에서 이동할 때는 (행, 열)로 움직이게 된다

방향이동 (행 변화, 열 변화)

L (왼쪽) (0, -1)
R (오른쪽) (0, +1)
U (위쪽) (-1, 0)
D (아래쪽) (+1, 0)

👉 즉, 이동하면 행(row)과 열(col)이 변화함

 

 

# 방향 정의 (L, R, U, D 순서)
dx = [0, 0, -1, 1]  # 행 변화량
dy = [-1, 1, 0, 0]  # 열 변화량
move_types = ['L', 'R', 'U', 'D']

# 초기 위치 (예: (x, y) = (2, 2)에서 시작)
x, y = 2, 2

# 이동할 명령어 리스트
commands = ['L', 'D', 'D', 'R', 'U']  # 왼쪽 → 아래 → 아래 → 오른쪽 → 위

# 이동 수행
for command in commands:
    # 이동 방향 찾기
    for i in range(len(move_types)):
        if command == move_types[i]:  # 명령어와 같은 방향 찾기
            nx = x + dx[i]
            ny = y + dy[i]

            # (예제에 따라 경계 체크)
            if 1 <= nx <= 5 and 1 <= ny <= 5:  # (5x5 그리드라 가정)
                x, y = nx, ny  # 이동

print(x, y)  # 최종 위치 출력

 

 

이코테 구현 문제 4-1

#입력
# 첫째줄에 공간의 크기를 나타내는 N
# A가 이동할 계획서

#도착할 지점

#연산 횟수는 이동 횟수에 비례함

n = int(input())
x,y = 1,1 # 시작 좌표

plans = input().split()  # 이동 계획서

# L , R, U , D
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)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
글 보관함